Got it. Here's a sharp, no-bloat README draft to lock your architecture, flow, and philosophy into words. This ain’t no brochure — this is your code’s doctrine.
Knowledge is open. So is evaluation. This platform encourages collaborative learning through tutor-created content and open-source assignment marking.
- JWT token is generated on registration/login.
- Token must be attached to every protected route via
Authorizationheader (Bearer <token>). - Backend uses
validate_token()dependency to extract and confirm user identity.
POST /student/registerFields: name, email, phone_number, password
POST /student/loginReturns a token.
POST /student/doassignmentRequires token.
Fields: course_id, exercise, lesson_title, etc.
POST /student/takequizSame structure as assignment. Uses wrk query param (quiz, assignment).
GET /student/viewresult?wrk=assignmentGET /student/viewall?wrk=quizPOST /tutor/registerPOST /tutor/loginPOST /tutor/givequiz?wrk=quizBackend returns a course_id.
Frontend must cache this like a token and auto-insert it when students are submitting.
/admin/register, /admin/login
POST /create/courseBackend auto-generates and returns a unique course_id.
course_idis generated once when a tutor/admin creates a course.- Frontend must cache it (like a JWT).
- Students never select it manually — it's auto-attached during submissions.
- This ensures traceability, consistency, and access control.
Any tutor can mark any assignment or quiz.
- No marking lock-in.
- Promotes peer review.
- Rating and reputation systems (coming soon) will let better tutors rise.
- FastAPI
- MongoDB Atlas
- Pydantic
- JWT Auth
- bcrypt for password security
- Tutor/Student Rating System
- Lesson-level analytics
- Time-limited submissions
- Chat between tutor and students
- Auto-correction engine (AI-based)
This platform is built like a battlefield — modular, scalable, and open. Code isn't just logic, it's leverage.
“When the student submits, the world learns.”
Need a markdown version? Or want this pushed as /docs route on your API with Swagger or Redoc?