ARC is a one-stop web application designed to meet the academic needs of students, providing a convenient platform to manage study plans, calculate grades, and check degree requirements. The platform aims to streamline academic processes, allowing students to focus on other important aspects of university life. It is accessible here: https://arc123.netlify.app.
ARC is a web application with the following key features:
![Screenshot 2023-08-06 at 11 09 00 PM](https://private-user-images.githubusercontent.com/111447603/258650589-42138e0f-6af2-496a-bde2-fd1f16a89e91.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUwMjQ2MzcsIm5iZiI6MTcyNTAyNDMzNywicGF0aCI6Ii8xMTE0NDc2MDMvMjU4NjUwNTg5LTQyMTM4ZTBmLTZhZjItNDk2YS1iZGUyLWZkMWYxNmE4OWU5MS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgzMFQxMzI1MzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jNTY5NmI4M2ZjOWRjMzk2ZDg1ZWQzMDU5YzUxNTFiMDI3MDMyNzc5NGJhOGM0Yzk4OGI0YzNjODliNjk2YWU0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.IEGXTak111aQVfPABWjVIXDUuqRPk8W1Hx7PHvxIfj8)
Users can enter their module assessment scores and calculate their overall scores. The calculator will display the scores needed to achieve the desired grade.
![Screenshot 2023-08-06 at 11 11 08 PM](https://private-user-images.githubusercontent.com/111447603/258650687-766b4e33-5c0d-4832-b767-0c1124680650.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUwMjQ2MzcsIm5iZiI6MTcyNTAyNDMzNywicGF0aCI6Ii8xMTE0NDc2MDMvMjU4NjUwNjg3LTc2NmI0ZTMzLTVjMGQtNDgzMi1iNzY3LTBjMTEyNDY4MDY1MC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgzMFQxMzI1MzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hMmRkYjZmYTViODMwYzkyNzFiNTZjYzY1ZGRkM2NkOGU5MjFkNDFiN2U5NmZhMTZkZjAwMjMyZDc0MzQ4YjJhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.8In21X0SBiqb5xuPA3xpIFCG-rrs5AcG1HcElaTLYOc)
Users can plan their modules for multiple semesters, adding and removing modules as needed. The platform will support different degree programs and update the degree requirement tables accordingly.
![Screenshot 2023-08-06 at 11 11 54 PM](https://private-user-images.githubusercontent.com/111447603/258650721-f12211d8-5c8d-4888-bf13-95ad917255ce.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUwMjQ2MzcsIm5iZiI6MTcyNTAyNDMzNywicGF0aCI6Ii8xMTE0NDc2MDMvMjU4NjUwNzIxLWYxMjIxMWQ4LTVjOGQtNDg4OC1iZjEzLTk1YWQ5MTcyNTVjZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgzMFQxMzI1MzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yMGQyZTg3YzRhZTZkMDBkMWYzNWYxMjMyMWYzOTQxZDA1Yzg4MjcwNzNjY2NlZjc3MWY3NmNlYWFhNWQwYzFiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.uMdYQR1kJmHt_UI1czroB2WFZT0cO2i8Q2XS-EDVthk)
ARC will include a forum where students can share their study plans with others, fostering collaboration and providing valuable references for academic planning.
![Screenshot 2023-08-06 at 11 13 07 PM](https://private-user-images.githubusercontent.com/111447603/258650785-d87fced7-5847-448a-a70a-5bcb1933d11c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUwMjQ2MzcsIm5iZiI6MTcyNTAyNDMzNywicGF0aCI6Ii8xMTE0NDc2MDMvMjU4NjUwNzg1LWQ4N2ZjZWQ3LTU4NDctNDQ4YS1hNzBhLTViY2IxOTMzZDExYy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgzMFQxMzI1MzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01ZWE5YmMzODRkYzRkNGFlM2VhZTkxNzY5YWJkZjQ3M2ZlZjllNTllYzIzNDUxZGU1OTlkNmU4NzBhZjY3ZTMzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.8RfQeD5zICH9F-X0WoDggEhRaQCnGm11GCf0aoO7JF4)
The profile page in ARC serves as a central hub for users to manage their account information and settings. It provides users with the ability to update their user properties and make changes to their account details.
![Screenshot 2023-08-06 at 11 14 09 PM](https://private-user-images.githubusercontent.com/111447603/258650837-1178aa4c-3392-41b6-8093-967f047d783f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUwMjQ2MzcsIm5iZiI6MTcyNTAyNDMzNywicGF0aCI6Ii8xMTE0NDc2MDMvMjU4NjUwODM3LTExNzhhYTRjLTMzOTItNDFiNi04MDkzLTk2N2YwNDdkNzgzZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgzMFQxMzI1MzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lMDE2MzRmYjU2NDJjYjYxNmRiN2JhMmFiYTBkMDAxNzNkNDA0MzA1MzgwM2I3YmYxMDg3NTY5ZmM2NWJjMDgyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.nOnKcv5YCGMvfyRWhZvX3p5oz-icK2DZ65faST3ZHxE)
The feedback form in ARC allows authenticated users to submit feedback, bug reports, or issues by clicking a button located at the bottom right of any page, which opens a form for users to type their feedback and submit it.
The test plan for ARC ensures the quality and reliability of the application through three main types of tests: system testing, integration testing, and unit testing. System tests cover the complete user flow using Puppeteer, while integration tests verify interactions between components with the help of MockProvider and mockStore for isolation. Unit tests use Jest and @testing-library/react for UI and Firebase backend testing, with Jest-Environment-JSDOM providing the simulated DOM environment.
System Tests: Puppeteer, Local Firebase emulator server, Axios Integration and Unit Tests: Jest, @testing-library/react, jest-environment-jsdom, MockProvider, mockStore, MockFirebase, MockFirestore The test suite covers various scenarios and ensures thorough testing of the core functionalities, combining different testing methodologies for comprehensive coverage and early bug detection.
To run ARC locally on your machine, follow these steps:
- Clone the repository:
[git clone https://github.com/ruishanteo/arc
- Install the necessary dependencies:
yarn install
- Start the development server:
yarn start
- Open your browser and navigate to
http://localhost:3000
to access ARC.
- React.js: Frontend development framework.
- MUI: Frontend component library.
- Formik, Yup: Form building and input validation.
- Firebase: Database for storing user data.
- Netlify: Deployment of project.