Smart Attendance Assignment System Problem Statement[1]
Smart Attendance Assignment System Problem Statement[1]
Problem Overview
You are tasked with developing a Smart Attendance and Assignment Submission System for
educational institutions. The system should enable teachers to efficiently mark attendance,
upload assignments, and track student submissions. Students should be able to view their
attendance records, submit assignments, and receive feedback from their teachers.
Requirements
User Roles:
1. **Admin**: The admin will manage the creation of teacher and student accounts. They
have complete access to the system.
2. **Teacher**: Teachers can mark attendance, upload assignments, track submissions, and
provide feedback on assignments.
3. **Student**: Students can view their attendance records, submit assignments, view
feedback and grades provided by teachers.
Core Features:
1. **Attendance Management**: Teachers should be able to mark attendance for each class
or session. They should also be able to view and edit past attendance records if necessary.
2. **Assignment Submission**: Teachers can post new assignments with deadlines.
Students will be able to submit their assignments through the platform, and teachers can
view and download them.
3. **Feedback and Grading**: After reviewing the assignments, teachers can provide
feedback and grades for each student. This feedback will be visible only to the respective
student.
4. **Real-time Notifications**: Students should receive notifications about upcoming
deadlines, feedback on assignments, and warnings if their attendance is falling below the
required level.
Bonus Features:
1. **Analytics and Reporting**: Implement a dashboard for both teachers and admins to
view analytics related to student attendance and assignment submission rates. Graphs or
tables could be used to visualize this data.
2. **Mobile-Responsive Design**: Ensure that the platform is fully functional and user-
friendly on mobile devices as well as desktops.
3. **Export and Import Options**: Allow teachers to export attendance records and
assignment reports in formats like CSV or PDF. Similarly, allow admins to bulk-upload
student data.
Technology Stack
Participants are free to choose the technology stack they are comfortable with. However,
they are encouraged to use the following technologies:
1. **Frontend**: HTML, CSS, JavaScript (React, Angular, or Vue.js)
2. **Backend**: Node.js, Python (Flask/Django), or Java (Spring Boot)
3. **Database**: MySQL, PostgreSQL, or MongoDB
4. **Authentication**: JWT, OAuth, or session-based authentication
5. **Hosting**: Participants can deploy their solutions on any platform such as Heroku,
AWS, or Firebase.
Submission Guidelines
1. **Code Repository**: Submit the code via a GitHub repository link.
2. **Documentation**: Ensure that the project is well-documented, including setup
instructions, usage, and a brief on how the features were implemented.
3. **Presentation**: Prepare a short presentation (5-7 minutes) explaining the system's
features, challenges faced, and how the solution solves the problem.
Judging Criteria
1. **Functionality**: How well does the system meet the core requirements?
2. **User Experience**: Is the system easy to use and navigate?
3. **Code Quality**: Is the code well-structured, documented, and maintainable?
4. **Innovation**: Are there any additional features or creative solutions implemented?
5. **Presentation**: How well is the system explained and presented to the judges?
Creating a MERN (MongoDB, Express, React, Node.js) stack solution for a system with three
distinct roles (Admin, Teacher, Student) involves multiple modules to manage
functionalities for each role. Here's a detailed breakdown of how to organize these modules:
This module is focused on managing teacher and student accounts, with full control by the
Admin role.
Backend:
Models:
o Admin Model: The admin has full control over the system, including user
management (teachers and students).
o Student Model: Fields like name, email, class, attendance records, and
assignment details.
Controllers:
o Admin Controller:
Routes:
Frontend (React):
Admin Dashboard:
o Components for managing users:
The attendance module allows teachers to mark student attendance and students to view
their attendance records.
Backend:
Models:
status: Present/Absent.
Controllers:
o Teacher Controller:
o Student Controller:
Routes:
Frontend (React):
Teacher View:
Student View:
This module allows teachers to upload assignments, track submissions, and provide
feedback. Students can submit assignments and view feedback.
Backend:
Models:
Controllers:
o Teacher Controller:
Submit assignments.
Routes:
Frontend (React):
Teacher View:
Student View:
This module manages user login, role-based access control (Admin, Teacher, Student), and
JWT-based authentication.
Backend:
Authentication:
o JWT-based login and registration.
Middleware:
Routes:
Frontend (React):
Protected Routes: Pages accessible only to authenticated users based on roles (e.g.,
Admin Dashboard, Teacher Dashboard, Student Dashboard).
Teachers can provide feedback and grades for student assignments, and students can view
their grades.
Backend:
Models:
Controllers:
o Teacher Controller:
o Student Controller:
Routes:
o POST /teacher/provide-feedback/:submissionId: Provide feedback on
submissions.
Frontend (React):
Teacher View:
Student View:
Additional Considerations:
Database: Use MongoDB with Mongoose to handle the models for users,
assignments, submissions, attendance, etc.
File Upload: For assignment submissions, you can use services like AWS S3 or any
cloud storage to handle uploaded files.
Deployment: Consider using platforms like Heroku for backend deployment and
Netlify for frontend deployment.
With these modules in place, you can structure your MERN stack project effectively,
ensuring clear separation of concerns and functionality for each user role.