https://github.com/madhavgiga1/kojo-backend
Python based backend for Kojo app that uses Django, PostgreSQL, Redis, Docker, Kafka, Nginx, uWSGI, and Kubernetes
https://github.com/madhavgiga1/kojo-backend
django django-rest-framework docker docker-compose kubernetes-deployment nginx nginx-proxy postgresql python uwsgi-nginx
Last synced: 2 months ago
JSON representation
Python based backend for Kojo app that uses Django, PostgreSQL, Redis, Docker, Kafka, Nginx, uWSGI, and Kubernetes
- Host: GitHub
- URL: https://github.com/madhavgiga1/kojo-backend
- Owner: Madhavgiga1
- Created: 2025-01-24T17:56:30.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-17T07:42:00.000Z (over 1 year ago)
- Last Synced: 2025-07-12T15:39:47.567Z (12 months ago)
- Topics: django, django-rest-framework, docker, docker-compose, kubernetes-deployment, nginx, nginx-proxy, postgresql, python, uwsgi-nginx
- Language: Python
- Homepage:
- Size: 128 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Classroom Management System
[](https://www.djangoproject.com/)
[](https://www.django-rest-framework.org/)
[](https://www.postgresql.org/)
[](https://kafka.apache.org/)
[](https://kubernetes.io/)
[](https://nginx.org/)
[](https://www.elastic.co/)
[](https://www.docker.com/)
A robust, scalable classroom management application built with Django REST Framework, Kafka, and PostgreSQL, Nginx, Docker and Kubernetes.
This system allows educators to create quizzes, students to take them, and provides real-time analytics through an event-driven architecture.
The teachers can also create assignment and students can upload their answers for it within the deadline.Assignments can be assigned to sections

## ✨ Features
- **Quiz Creation and Management**: Create, update, and manage quizzes with various question types
- **Student Assignment**: Assign quizzes to individual students or groups
- **Real-time Results**: Process quiz submissions in real-time with Apache Kafka
- **Comprehensive Analytics**: Track student performance and quiz statistics
- **Advanced Search**: Find study materials with Elasticsearch fuzzy search
- **RESTful API**: Well-documented API for integration with other systems
- **Containerized Setup**: Easy deployment with Docker Compose or Kubernetes
- **High Performance**: Optimized with Nginx and uWSGI for production environments
- **Scalable Architecture**: Horizontally scalable with Kubernetes orchestration
## 🏗 Architecture
The application follows a modern microservices-inspired architecture with the following components:
### System Architecture

### Database Schema


### Kafka Event Stream Architecture

## 🔧 Tech Stack
### Backend
- **Django**: Web framework
- **Django REST Framework**: API development
- **uWSGI**: Application server
- **PostgreSQL**: Primary database
- **Redis**: Caching and task queue
### DevOps & Infrastructure
- **Docker**: Containerization
- **Kubernetes**: Container orchestration
- **Nginx**: Web server and reverse proxy
### Messaging & Search
- **Apache Kafka**: Event streaming platform
- **Zookeeper**: Kafka coordination
- **Elasticsearch**: Searchengine
### Monitoring & Documentation
- **DRF Spectacular**: API documentation with Swagger UI
- **Kafka UI**: Kafka management interface
- **Adminer**: Database administration
## 📚 API Documentation
The API is fully documented using DRF Spectacular, which provides interactive Swagger documentation:





Access the interactive documentation at `/api/schema/swagger-ui/` when the application is running.
## 🚀 Installation
### Prerequisites
- Docker and Docker Compose (for local development)
- Kubectl and Kubernetes cluster (for production deployment)
- Git
### Docker Compose Setup
1. Clone the repository
```bash
git clone https://github.com/your-username/quiz-management-system.git
cd quiz-management-system