Develop a web-based platform for managing student transcripts and academic records using a stack data structure to track course grades and graduation requirements.
- Installation
- Features
- Technologies used
- Stack Implementation
- Contribution
- Contact
To install and run the project:
- Install Node.js and MongoDB on your machine.
- Clone the project repository and navigate to the project directory.
- Install dependencies using
npm install
. - Create a.env file with environment variables.
- Start the server using
npm start
for frontend andnpm run dev
for backend - Open http://localhost:3000 in a web browser to see the running application.
- User authentication and authorization to ensure secure access to the application
- User profile creation and management for easy maintenance of user data
- Student record creation and management for keeping track of student information
- Course record creation and management to manage courses offered by the institution
- Semester record creation and management for tracking courses taken by students during each semester
- Implementation of stack data structure for tracking course history
- Calculation of GPA and academic standing to keep track of student progress
- Graduation requirement tracking to ensure students meet all requirements for graduation
- Ability to generate unofficial transcripts with all relevant information
- Ability to request official transcripts and send them to the appropriate office
All of the above features have been thoroughly tested and verified to be functioning properly. Tests include:
- Verification of registered user access and authorization to restricted pages
- Testing of profile creation, editing, and deletion to ensure proper saving and removal of user data
- Verification of accurate creation, updating, and deletion of student, course, and semester records
- Testing of stack implementation for tracking course history, including adding and removing courses
- Verification of accurate calculation of GPA and academic standing
- Testing of graduation requirement tracking and updating to reflect changes
- Verification of accurate generation of unofficial and official transcripts with all required information.
- MongoDB: a document-based NoSQL database used to store and manage data in the project.
- Express: a web application framework used to build the server-side of the project, handle HTTP requests, and define routes.
- React: a JavaScript library used to build the client-side of the project, create reusable UI components, and manage the application state.
- Node.js: a JavaScript runtime environment used to run server-side code in the project and manage dependencies.
- React Bootstrap: a frontend framework used to create responsive and visually appealing UI elements, including buttons.
- React Toast: a library used to display notification messages in the UI.
- Font Awesome: a library used to add icons to the UI.
- React Router: a library used to set up links and routes in the application.
- PDFKit: a library used to generate PDFs.
- Nodemailer: a library used to send email notifications.
- Generating unofficial transcripts: a stack is used to efficiently reverse the order of course information based on the student's course track array, enabling the most recent course taken to appear first on the transcript.
- Updating completed courses: a stack is used to efficiently maintain the order in which courses are completed by the student when the required credits are fulfilled.
- To add a course to a student's course history, a stack operation push is used, which ensures that the most recent course appears on top of the list. This maintains a chronological order and provides an organised record of the student's academic progress. Using stacks in these functions improves efficiency and allows for easier manipulation and maintenance of course information.
Instructions on how others can contribute to the project, including information on how to report issues, submit feature requests, and contribute code:
- Fork the repository
- Create a new branch
- Make your changes and commit them
- Push your changes to your forked repository
- Submit a pull request to the original repository
If you have any questions or feedback regarding this project, please feel free to contact us using one of the following methods:
-
GitHub: github.com/himanshi4902
We would love to hear from you and are open to suggestions, improvements, and collaborations!