Project MPTARIH is a mobile application that allows users to test their knowledge of history. The main object of the project is to hone my skills in React, React Native, and Node.js (MERN). The project was developed using the MERN stack, and it includes a mobile app, an admin panel, and a backend API. The mobile app is designed for users to test their knowledge of history, while the admin panel is designed for admin users to add questions to the database. The backend API is used to process user data, store questions in the database, and provide questions to mobile app users. The project was my first big project, and it helped me understand how to integrate different parts of a project and how to work with different libraries.
This project includes a frontend developed using React Native Expo. Drawer navigation and stack navigation were used together to make the application's navigation experience more user-friendly. Components were organized into separate modules following the principles of React, and they were called when needed. Additionally, the context structure was utilized for processing user data. This project helped me understand how React can be integrated with various libraries.
The admin panel was built using React. Designed exclusively for admin users, it allows entering quiz questions that will appear to mobile app users. During the project development, I did not focus much on styling; rather, I emphasized functionality. Features like viewing and deleting the number of questions, their details, and the questions added were implemented in the admin panel.
The backend part of this project was developed using Node.js and MongoDB. The backend API includes methods for filtering and randomizing questions based on topic titles for mobile app users, enabling users to add questions to favorites, storing questions prepared by admin users in the database, as well as controllers for user authorization and middleware for JWT verification. During development, the project was deployed to Firebase, but it is currently inactive.
- User Progress Tracking: Save your progress by logging in, allowing you to resume from where you left off.
- Topic-Specific Questions: Access a curated set of questions tailored to each of the 16 units, with 50 questions for each unit.
- Topic Explanatory Cards: Explore topic-specific explanatory cards designed to supplement your understanding (explanatory cards are hidden in GitHub because of the copyright)
- Progress Monitoring: Keep track of your progress unit by unit, helping you stay organized and focused.
- Favorite Questions: Mark questions as favorites and filter them by topic for easy reference.