- Elevate education with streamlined communication, attendance, exams, and collaborative discussions—an efficient, secure platform fostering improved teacher-student collaboration.
- The application is optimized with code-splitting techniques using React's
react-lazy
andSuspense
for lazy loading, along with anerror boundary
fallback UI. - Deployed the frontend on
AWS Amplify
and the backend onAWS Elastic Beanstalk
-
Authentication and Authorization:
- Secure user authentication using JWT tokens and Bcrypt.js for password hashing.
- Three roles: Student, Teacher, and Admin.
-
Teacher Functionality:
- View timetable and choose subjects directly from it.
- Take and update student attendance for particular subjects.
- Download attendance reports in xls format with minimum criteria.
- Enter and manage marks with proper restrictions on the limit of marks.
- Download marks reports by choosing subjects.
- Solve student doubts through the discussion forum and chat.
- Update profile.
-
Student Functionality:
- View attendance with percentage.
- Filter attendance by subject, date range, and sort options.
- Ask doubts to teachers through the discussion forum.
- Update profile.
-
Admin Functionality:
- Create, manage, and assign subjects to teachers.
- Create teacher accounts , manage it and send credentials via email.
- Create and manage student accounts.
- Create timetables for teachers with teacher's assign subjects.
Client:
- React
- Context API
- CSS
- Socket.io
Server:
- NodeJs
- Express
- Nodemailer
- Crypto-JS
- Socket
Database:
- MongoDB
-
Clone the repository:
git clone https://github.com/Adityajparmar37/EduConnect.git
-
Go to backend and run
cd backend npm install
-
Go to frontend and run
cd frontend npm install
-
Setup .env file
PORT = Port Number ( eg 3500 ) MONGO_URI = "Your MongoDB Database URI" JWT_KEY = Your secret key KeyCrypt="Encryption key" EMAIL= "Email to send order confirmation mail" MAILPASS = "Google app-pass"
-
To Run Project
cd frontend npm start run cd backend npm run dev
🤞🏻 Hope you find project useful