Student Course Management System is a Django web application with three separate portals. The admin manages courses, students and faculty and maps faculty to courses by component and section. Faculty see their mapped courses, publish chapter-wise course content and build quizzes. Students browse courses by academic year and semester, open course content, upload their work and attempt quizzes that are graded automatically.
| Portal | Features |
|---|---|
π‘οΈ Admin (adminapp) |
Login and change password Β· add, view, update and delete courses (department, academic year, semester, course code, L-T-P-S, credits) Β· add, view, update and delete students and faculty Β· faculty-course mapping by component (Lecture / Tutorial / Practical / Skill) and section Β· view contact queries |
π©βπ« Faculty (facultyapp) |
Login and change password Β· view mapped courses Β· add and update course content (chapter, topic, description, link, file upload) Β· add and update quizzes (4 options + answer) Β· view student work uploads Β· view quiz results |
π Student (studentapp) |
Login and change password Β· view courses by academic year and semester Β· open course content Β· upload work for a topic Β· attempt quizzes with automatic scoring and a grade (A β₯ 70%, B β₯ 60%, C β₯ 50%, D β₯ 40%, else F) |
| π Public | Home, About, Contact form and separate login pages for each role |
| Layer | Technology |
|---|---|
| Backend | Python 3.12, Django (3 apps: adminapp, facultyapp, studentapp) |
| Database | PostgreSQL (psycopg2) |
| Frontend | Django templates, HTML5, CSS3, JavaScript |
| File storage | Django FileField uploads under media/ |
Student-Course-Management-System/
βββ SDPPROJECT/
βββ smsproject/
βββ smsproject/ # settings.py, urls.py, views.py (home, about, logins, contact)
βββ adminapp/ # Admin, Course, Student, Faculty, FacultyCourseMapping, Contact
βββ facultyapp/ # CourseContent, CourseQuiz, UploadWork
βββ studentapp/ # QuizResult, course browsing, quizzes, uploads
βββ templates/ # 50+ pages for the three portals
βββ static/
β βββ css/ # adminstyle, facultystyle, studentstyle, style
β βββ images/
β βββ js/script.js
βββ media/ # uploaded course content
βββ manage.py
- Python 3.10+
- PostgreSQL running locally
- Clone the repository
git clone https://github.com/Annepuuday111/Student-Course-Management-System.git cd Student-Course-Management-System/SDPPROJECT/smsproject - Create and activate a virtual environment
python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate
- Install dependencies
pip install django psycopg2-binary
- Create the database and update
DATABASESinsmsproject/settings.pywith your own credentialsCREATE DATABASE "SMSProject";
- Apply migrations
python manage.py migrate
- Create the first portal admin. Portal admins live in
admin_table(theAdminmodel), which is registered in Django admin:Open http://127.0.0.1:8000/admin/, add an Admin record, then sign in at http://127.0.0.1:8000/login. Students and faculty added by the admin get the default password from the model (python manage.py createsuperuser python manage.py runserver
passwordfield default) and can change it after login.
- Hash portal passwords instead of storing them in plain text
- Move database and email credentials to environment variables
- Add a
requirements.txt
Contributions are welcome. Fork the repo, create a branch (git checkout -b feature/my-change), commit your work and open a pull request.
