Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1,002 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

BiddyaPeeth Logo

Empowering Learning, Anywhere, Anytime

From foundational knowledge to advanced mastery, BiddyaPeeth helps you learn, grow, and succeed at your own pace.

Tech Stack

Django PostgreSQL Docker Redis Elasticsearch Tailwind CSS Django Unfold Django Silk Python 3.11 Pre-commit Black code style MIT License


GitHub Workflow Status Docker Kubernetes DigitalOcean

SonarCloud Analysis

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Code Smells Coverage


πŸ“š Explore Project Resources

Stay updated and dive deeper into the project!

  • πŸ“– Wiki Page – Project overview, documentation, and important guides.
  • πŸ› οΈ Development Setup – Get started with setting up your development environment.
  • 🀝 Contributing Guidelines – Learn how to contribute and collaborate with us.
  • πŸ“„ Docs – Comprehensive documentation for developers and users.
  • πŸ““ Dev Log – Track our development journey and major updates.

πŸ“‹ Table of Contents


πŸ”Ž About BiddyaPeeth

BiddyaPeeth is an advanced, next-generation EdTech platform built with Django and Tailwind CSS, designed to revolutionize digital learning experiences.

It offers a modern, scalable, and student-centric environment for online education, empowering both learners and instructors with seamless tools for engagement and management.

πŸš€ Key Highlights

  • Role-based dashboards tailored for students, teachers, and administrators.
  • Comprehensive course management β€” from course creation to enrollment and content delivery.
  • Live virtual classrooms with real-time video conferencing, chat, polls, and screen sharing.
  • Integrated payment solutions enabling access to premium educational services.
  • Dynamic community forums for collaborative learning and peer interactions.
  • Scalable and device-friendly design for accessibility across devices.

πŸ”₯ Why BiddyaPeeth?

Traditional education platforms often suffer from:

  • ❌ Poor user experience.
  • ❌ Limited real-time interaction capabilities.
  • ❌ Lack of modern design and scalability.

BiddyaPeeth solves these challenges by offering:

  • Seamless course and user management.
  • A modern Tailwind CSS frontend.
  • Fast deployment with Docker and Kubernetes-ready architecture.
  • Real-time communication tools to foster active learning environments.

🌍 Market Opportunity

  • The global EdTech market is projected to reach $404 billion by 2025.
  • Increasing demand for virtual education and interactive learning tools worldwide.

🌐 Live Demo

Experience Biddyapeeth in action by visiting our live demo:

Live Demo

Explore the platform's features and see how it transforms real-time learning into an interactive, seamless experience.

πŸ–ŒοΈ Team MindJunkies

Shafayetul Huda Sadi


Md. Tonmoy Hossain Jifat


Farhana Islam Saima


Md. Redwanuzzaman



πŸ— System Architecture

Architecture Diagram

Architecture Diagram

πŸ“Œ Modules Overview

Module Purpose
Accounts User Authentication and Profile
Courses Course Creation, Enrollment
Dashboard Role-Based Dashboards (Student, Teacher)
Forums Community Discussions
Lecture Lecture and Assignment Management
Live Classes Live Video Integration
Payments Payment and Billing

System Flow Diagram

System Flow Diagram

Operational Flow Explained

  1. Authentication πŸ”‘

    • User logs in or registers.
    • Role check (Student / Teacher / Admin).
  2. Student Flow πŸŽ“

    • Browse and view courses.
    • If not enrolled βž” Payment βž” Enrollment.
    • Access course content (Lectures, Materials, Assignments, Live Classes).
    • Participate in community forums (Post, Reply).
  3. Teacher Flow πŸ‘©β€πŸ«

    • Manage content (Create/Edit Courses, Upload Lectures, Create Assignments).
    • Schedule and conduct live classes.
    • Grade student submissions.
    • Use live virtual classroom (Video, Chat, Screen Share, Polls).
  4. Admin Flow πŸ› οΈ

    • Manage users, approve courses, handle payments, and adjust site settings.
    • Moderate forum activity.
  5. Live Interaction & Assessment πŸ“‘

    • Real-time classes and course completion.

πŸ“‚ Project Structure

mindjunkies/
β”œβ”€β”€ accounts/
β”œβ”€β”€ courses/
β”œβ”€β”€ dashboard/
β”œβ”€β”€ forums/
β”œβ”€β”€ home/
β”œβ”€β”€ lecture/
β”œβ”€β”€ live_classes/
β”œβ”€β”€ payments/
β”œβ”€β”€ static/
β”œβ”€β”€ templates/
project/
β”œβ”€β”€ settings/
|    β”œβ”€β”€ base.py
|    β”œβ”€β”€ development.py
|    β”œβ”€β”€ production.py
β”œβ”€β”€ logging.py
└── urls.py
config/  # JWT and Tokens
k8s/     # Kubernetes Deployment Files
docs/    # Documentation
Dockerfile
manage.py
.. # Other files

Database Design

Database Design


Getting Started

Follow these steps to set up the project locally:

Prerequisites

  • Python 3.11+
  • uv (Python dependency manager)
  • PostgreSQL / SQLite
  • Docker & Docker Compose (Redis, Elasticsearch)

Local Development Setup

  1. Clone the repository:

    git clone https://github.com/Learnathon-By-Geeky-Solutions/mindjunkies
    cd mindjunkies
  2. Install dependencies:

    pip install uv
    uv sync
  3. Start development:

    cp .env.example .env # Modify the environment variables
    docker compose -f docker-compose.elasticsearch_redis.yml up -d # Start Redis and Elasticsearch
    
    uv run python manage.py migrate # Run migrations
    uv run python manage.py createsuperuser # Create a superuser
    uv run python manage.py runserver # Start the Django server
    uv run python manage.py tailwind watch # Start Tailwind CSS
    
    #  You can use make commands as well
    make migrate # Run migrations
    make createsuperuser # Create a superuser
    make tailwind # Start Tailwind CSS
    make runserver # Start the Django server
  4. Open http://localhost:8000 in your browser.

Using Docker

# Build and start containers
docker-compose up --build

πŸ› οΈ Development Guidelines

To maintain consistency and quality across the codebase, we follow these development best practices:

πŸ”Ή Code Style

  • Follow PEP8 standards.
  • Use Black for code formatting:
    black .
  • Use Pre-commit hooks:
    pre-commit install
    pre-commit run --all-files

πŸ”Ή Linting & Quality

  • Use flake8, isort, and black as part of your local pre-commit workflow.
  • Monitor code quality via SonarCloud for:
    • Maintainability
    • Code smells
    • Security vulnerabilities

πŸ”Ή Git Workflow

  • Use feature branches: feature/your-feature-name
  • Follow conventional commit messages:
    e.g., feat: add live class scheduling UI
  • Always submit Pull Requests (PRs) with:
    • Clear descriptions
    • Screenshots (if UI-related)
    • Linked issues (if applicable)

Git Workflow


πŸ§ͺ Testing

Testing is critical for ensuring stability and quality across deployments.

πŸ”Έ Tools Used

  • pytest for unit testing
  • coverage for tracking test coverage
  • Model-Bakery for creating test data

πŸ”Έ Running Tests

uv run pytest

πŸ”Έ Checking Coverage

uv run coverage run -m pytest
uv run coverage report -m

πŸš€ CI/CD Pipeline

BiddyaPeeth employs a robust CI/CD pipeline to ensure seamless integration and deployment using:

  • GitHub Actions: Automates testing, building, and deployment processes.
  • Docker: Containerizes the application for consistent environments.
  • DigitalOcean Kubernetes: Manages scalable deployments in a cloud-native environment.
  • DigitalOcean Container Registry: Stores and manages Docker images securely.

πŸ”„ Workflow Overview

  1. Code Push: Developers push code to the GitHub repository.
  2. CI Process:
    • Run linting and tests using pytest.
    • Build Docker images.
    • Push images to DigitalOcean Container Registry.
  3. CD Process:
    • Deploy updated images to DigitalOcean Kubernetes cluster.
    • Apply Kubernetes manifests for deployment.
    • Monitor deployment status and rollbacks if necessary.

πŸ› οΈ Setting Up CI/CD

To set up the CI/CD pipeline: CI/CD to automate deployments to Kubernetes on DigitalOcean ...

  • GitHub Secrets:

    • DOCKER_USERNAME: Your Docker Hub username.
    • DOCKER_PASSWORD: Your Docker Hub password or access token.
    • DIGITALOCEAN_ACCESS_TOKEN: Personal access token for DigitalOcean API.
    • KUBE_CONFIG_DATA: Base64 encoded Kubernetes config file.
  • Workflow File: Located at .github/workflows/build.yml.

For a detailed guide, refer to DigitalOcean's documentation on deploying with GitHub Actions: How to Enable Push-to-Deploy on DigitalOcean Kubernetes Using ...


🀝 Contributing

We welcome contributions!
Please read our CONTRIBUTING.md for more information on how to get started.


License

This project is licensed under the MIT License - see the LICENSE file for details.

About

BiddayPeeth: Empowering Learning, Anywhere, Anytime

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Used by

Contributors

Languages