EduHub is an innovative educational institute website designed to provide students with a seamless enrollment experience in a wide array of courses for enhanced learning. It incorporates a user-friendly instructor dashboard that enables instructors to create assignments either manually or with the aid of cutting-edge AI technology. Furthermore, instructors have the capability to make timely announcements, ensuring students are kept abreast of important updates.
Live : https://edu-sphere-seven.vercel.app/
- Student Dashboard: Easily manage courses and assignments.
- Intuitive Instructor Dashboard: Streamlined assignment creation.
- Student Enrollment and Assignment Submission: Seamless interaction.
- Generative AI Chatbot: Enhances user interaction.
- Cutting-edge AI Assignment Generator: Automates assignment creation.
- Announcement System: Disseminate crucial updates.
- Frontend: Angular
- Backend: Node.js
- Database: MySQL
The backend is built on Node.js.
Route | Use Case | Access |
---|---|---|
GET /api/student | Fetch all students | authentication, authorize(["admin"]) |
POST /api/student/signup | Register a new student | Public |
POST /api/student/signin | Login a student | Public |
GET /api/student/course/instructor/:id | Get students in a course assigned to an instructor | authentication, authorize(["instructor", "admin"]) |
GET /api/instructor | Fetch all instructors | authentication, authorize(["admin"]) |
POST /api/instructor/signup | Register a new instructor | Public |
POST /api/instructor/signin | Login an instructor | Public |
GET /api/instructor/course | Get instructors and associated courses | authentication, authorize(["admin"]) |
GET /api/instructor/course/available | Get courses not assigned to an instructor | Public |
GET /api/department | Fetch all departments | Public |
POST /api/department | Create a new department | authentication, authorize(["admin"]) |
GET /api/department/courses | Get departments with associated courses | Public |
GET /api/course | Fetch all courses | Public |
POST /api/course | Create a new course | authorize(["instructor", "admin"]) |
GET /api/course/enrolled/:id | Get enrolled courses for a specific student | authentication, authorize(["student", "admin"]) |
GET /api/enrollment | Fetch all enrollments | authentication, authorize(["admin"]) |
GET /api/enrollment/student/course | Get all student enrollments with course and enrollment date | authentication, authorize(["admin"]) |
POST /api/enrollment | Enroll a student in a course | authentication, authorize(["student"]) |
GET /api/assignment | Fetch all assignments | authorize(["admin", "instructor"]) |
POST /api/assignment | Create a new assignment | authorize(["instructor"]) |
GET /api/assignment/course | Get assignments with associated courses | authorize(["admin"]) |
GET /api/assignment/course/:id | Get assignments for a specific course | authentication, authorize(["student", "instructor", "admin"]) |
GET /api/assignment/student/:id | Get assignments and submissions for a specific student | authentication, authorize(["student", "instructor", "admin"]) |
DELETE /api/assignment/:id | Delete an assignment | authorize(["instructor", "admin"]) |
PATCH /api/assignment/:id | Update an assignment | authorize(["instructor", "admin"]) |
GET /api/submission | Fetch all submissions | authentication, authorize(["admin"]) |
POST /api/submission | Submit an assignment | authentication, authorize(["student", "instructor"]) |
GET /api/submission/student | Get student submissions | Public |
GET /api/submission/course/:id | Get submissions for a specific course | authentication, authorize(["admin", "instructor"]) |
GET /api/announcement/department/:id | Get announcements for a specific department | authentication, authorize(["admin", "instructor", "student"]) |
GET /api/announcement/course/:id | Get announcements for a specific course | authentication, authorize(["admin", "instructor", "student"]) |
GET /api/announcement | Get all announcements | authentication, authorize(["student", "instructor", "admin"]) |
GET /api/announcement/student/:id | Get announcements for courses enrolled by a student | authentication, authorize(["student", "instructor", "admin"]) |
GET /api/announcement/:id | Get a specific announcement | authentication, authorize(["student", "instructor", "admin"]) |
POST /api/announcement | Post a new announcement | authentication, authorize(["admin", "instructor"]) |
POST /api/ai/chat | Post a message for chatbot AI | Public |
POST /api/ai/assignment | Get assignment information using AI | authentication, authorize(["instructor", "admin", "student"]) |
GET /api/student
: Fetch all students.POST /api/student/signup
: Register a new student.POST /api/student/signin
: Login a student.- ...
GET /api/instructor
: Fetch all instructors.POST /api/instructor/signup
: Register a new instructor.POST /api/instructor/signin
: Login an instructor.- ...
GET /api/department
: Fetch all departments.POST /api/department
: Create a new department.- ...
GET /api/course
: Fetch all courses.POST /api/course
: Create a new course.- ...
GET /api/enrollment
: Fetch all enrollments.POST /api/enrollment
: Enroll a student in a course.- ...
GET /api/assignment
: Fetch all assignments.POST /api/assignment
: Create a new assignment.- ...
GET /api/submission
: Fetch all submissions.POST /api/submission
: Submit an assignment.- ...
GET /api/announcement
: Get all announcements.GET /api/announcement/:id
: Get a specific announcement.POST /api/announcement
: Post a new announcement.- ...
POST /api/ai/chat
: Post a message for chatbot AI.
POST /api/ai/assignment
: Get assignment information using AI.
Throughout the development of EduHub, I've had the opportunity to expand my knowledge and skills significantly. Here are some of the key takeaways:
-
New Technology Stacks: I explored and implemented new technology stacks, including using generative AI, within just one month. This experience has enriched my proficiency in handling cutting-edge tools and frameworks.
-
Generative AI: In particular, I delved into Generative AI as part of the GA-201 course. Learning how to leverage AI for various tasks, such as assignment generation and chatbot interactions, has been an enlightening experience.
-
Communication: Developing the Announcement System taught me the importance of effective communication in ensuring students, instructors, and administrators are informed of essential updates promptly.
-
AI Integration: Integrating AI features into the project, such as the Generative AI Chatbot and AI Assignment Generator, has opened up exciting possibilities for automating and enhancing user interactions.
-
Continuous Learning: This project has reinforced the importance of continuous learning in the fast-paced world of technology. Adapting to new tools and technologies is essential for staying competitive and innovative.
I'd also like to mention that I received valuable assistance from an AI model during the process, showcasing the potential of AI in simplifying various aspects of software development.
Thank you for the opportunity to work on EduHub, and I look forward to applying these newfound skills to future projects and endeavors.
Note: This individual project was developed in just 8 days.