Skip to content
/ edugrid Public
forked from adipai/edugrid

Web application for learning management

License

Notifications You must be signed in to change notification settings

deep41/edugrid

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Edugrid

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).

Tech Stack

  • 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.

Architecture Overview

  • 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.

Key Features

For problem statement definition description of application functionality, see description.md

Admin

  • 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.

Faculty

  • 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.

Student

  • 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.

Teaching Assistant (TA)

  • 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.

Installation and Setup

Backend Setup

To run the backend, follow the instruction below

  1. Change directory to run the backend
cd fastapi
  1. Install packages
pip install -r requirements.txt
  1. Setup .env file. Add the appropriate uri for to locate the database.
DATABASE_URL=<DB_URI>
  1. Run the backend
sh run.sh

On windows systems

fastapi dev main.py

Now the backend is running on port 8000

Frontend Setup

To run the frontend, follow the instructions below

  1. Change directory to run frontend
cd frontend
  1. Install packages
npm install
  1. Run frontend
npm run dev

Future Enhancements

  • (Currently on-prem, running on NCSU servers): migrate to cloud for auto-scale and high availability
  • Enhanced UI
  • Security layer integration

Contributors

Deepak Rajendran
Rishi Singhal
Shashank Madan
Aditya Pai Brahmavar

About

Web application for learning management

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 69.0%
  • Python 30.7%
  • Other 0.3%