Due to COVID-19, the whole world has realized the power of online learning and the impact it can have on students. Be it K-12 or higher education, virtual learning has become very important now. Teachers need to adapt and learn to get used to a new way of teaching their students.Apni Shiksha is a course management system that supports online learning and teaching. It allows professors to post grades, and assignments online.
What it does
A teacher upon registering is able to add registered students to the class. The teacher can then update the details of the students enrolled in the class. During the academic year a teacher can upload assignments for the students to complete. Apni Shiksha also has a built in attendance managment system.The teachers can keep a track of who attended the online classes on a daily basis. The teachers can also update the marks for the entire class after quizes from the online portal itself.The students can check their marks and attendance after logging in to the student portal. They can also upload their submissions to the portal. At the end of the academic year they can give feedback to their teachers.There is also a quizing system wherein teacher's can create their own quizes, they add multiple choice questions with correct answers, the students can take the quiz at the designated time and after the quiz is over, the students can see their own marks and after all the students have answered, the teachers can get a report of how well the students performed.
How we built it
Apni Kasksha is MERN stack application. The frontend is powered by React. The Frontend Components are buit using Material UI React.We use Redux for state managment for storing the marks and axios for making requests to the backend. NodeJS is used on the backend and Express is used as middleware.The NoSQL database used is MongoDB to define the Models. The code is properly structured using the MVC pattern.We use Multer to manage file uploads.
Challenges we ran into
- Setting up Material UI with React
- Learning Redux for state management
- Deploying the full stack application to Heroku
- Setting up MongoDB Atlas
- Making the backend according to the MVC pattern
- Defining relationships between different entities in the backend
While making the frontend like setting up theming and components using Material UI, Then there was the challenge of updation state with each event in the redux store
Accomplishments that we're proud of
We are proud that we have built a decent enough web app, for effective management of student and teacher data.
What we learned
We learned how to build a full stack application with react, redux and nodejs and learned how to deploy the web app, We also learned how to add a custom domain name to our heroku app.
What's next for Apni Shiksha
We plan to improve the quizing system wherein teachers can design their own quizes for students and also use AI technologies to make it more effective. We also plan to improve the UI and add other useful features.