This is a comprehensive educational platform designed to enhance the management and participation in academic courses at an institution. It supports various roles, including admin, faculty, student and teaching assistant, each with tailored functionalities (built from scratch and maintained as a part of the CSC 540 - DBMS course at NC State University).
- Backend: FastAPI (Python) for API management, MariaDB (MySQL) for the database.
- Frontend: React + TypeScript + Vite
- Database: MySQL with comprehensive schema including courses, students, participation, notifications, and more.
- Frontend-Backend Interaction: The frontend interacts with the FastAPI backend via RESTful APIs.
- Database Structure: Relational schema designed for handling courses, users, participation, notifications, etc.
- Authentication and Authorization: Secure role-based access.
- Concurrency Support: The backend is built to handle multiple simultaneous requests efficiently, ensuring seamless user experience during peak usage times.
For problem statement definition description of application functionality, see description.md
- User Management: Create, update, and manage users across the platform.
- Course Oversight: View and manage courses and enrollments.
- Notification Management: View and send notifications to users.
- Course Creation and Management: Create and manage course details, textbooks, and related resources.
- Student Enrollment: Approve student enrollments and oversee course capacity.
- Grade and Feedback: Manage participation points and give feedback.
- Course Enrollment: Enroll in courses, view status (Pending/Enrolled).
- Activity Participation: Attempt activities, answer questions, and track progress.
- Notification Center: Receive and view course-related notifications.
- Course Assistance: Support faculty in managing courses and answering student queries.
- Participation Review: Help review student activities and submissions.
- Resource Sharing: Share and manage course materials.
To run the backend, follow the instruction below
- Change directory to run the backend
cd fastapi
- Install packages
pip install -r requirements.txt
- Setup
.env
file. Add the appropriate uri for to locate the database.
DATABASE_URL=<DB_URI>
- Run the backend
sh run.sh
On windows systems
fastapi dev main.py
Now the backend is running on port 8000
To run the frontend, follow the instructions below
- Change directory to run frontend
cd frontend
- Install packages
npm install
- Run frontend
npm run dev
- (Currently on-prem, running on NCSU servers): migrate to cloud for auto-scale and high availability
- Enhanced UI
- Security layer integration
Deepak Rajendran
Rishi Singhal
Shashank Madan
Aditya Pai Brahmavar