Home - Amaya-Wickramaarachchi/gpa-calculator GitHub Wiki
Welcome
Welcome to the GPA Calculator Wiki, the central documentation hub for the GPA Calculator web application. This app helps students calculate their semester and overall GPA, track academic progress across semesters, and generate detailed reports. Built with a modern, user-friendly interface, it’s designed to empower students to manage their academic journey with ease.
This wiki provides comprehensive information for users, developers, and contributors, including setup guides, feature overviews, architecture details, and contribution guidelines.
About the GPA Calculator
The GPA Calculator is a single-page web application built with Next.js and React, deployed on Vercel. It uses LocalStorage for client-side data persistence, eliminating the need for a backend or authentication. The app features a modern UI with a navy-teal-orange color palette, Poppins font, and Font Awesome icons, inspired by clean, educational design principles.
Key Features
- GPA Calculation: Compute semester GPA and overall FGPA with support for weighted grades (Regular, Weight) and a customizable grade system.
- Semester Tracking: Save semester data (courses, GPA, credits) to LocalStorage and view historical performance.
- Report Generation: Download text-based reports with course details, GPA, and motivational messages.
- Clear History: Reset semester history while preserving current calculations.
- Modern UI: Responsive design with card-based layouts, animated buttons, and a visually appealing landing page featuring a hero section, feature cards, and wave animation.
- No Authentication: Fully client-side, ensuring simplicity and accessibility.
Tech Stack
- Frontend: Next.js 14, React 18
- Styling: Custom CSS (app/styles.css), Poppins font (Google Fonts), Font Awesome icons
- Storage: LocalStorage (courses, semesterHistory)
- Deployment: Vercel (static site with serverless routing)
- Testing: Jest (for calculateGpa.test.js)
- Branches: feature/modern-ui, feature/no-auth, feature/fix-save-semester, feature/enhanced-landing-page
System Architecture
The GPA Calculator’s architecture is documented using the C4 model (Context, Containers, Components, Code), visualized with Mermaid diagrams. These diagrams provide a hierarchical view of the system, from high-level context to code-level details.
See the Architecture Documentation for Mermaid diagrams and detailed descriptions.
Getting Started
For Users
Access the App:
Visit the deployed app on Vercel (https://gpa-calculator-rust.vercel.app/) or run locally (http://localhost:3000). Start at the landing page and click “Get Started” to access the calculator.
Using the Calculator:
- Select an academic year and semester.
- Add courses (name, credits, grade, weight) and calculate GPA.
- Save semesters to track history, clear history if needed, or download reports.
- View the grade system table for reference.
Example:
Input courses from Semester 2 (e.g., IT: A+, 3 credits, Regular; MATH: A, 3 credits, Regular). Calculate GPA (~3.64). Save as “Fall 2025” and verify in history.
For Developers
Clone the Repository: git clone [(https://github.com/Amaya-Wickramaarachchi/gpa-calculator.git)] cd gpa-calculator git checkout feature/enhanced-landing-page
Install Dependencies: npm install
Run Locally: npm run dev
Access at http://localhost:3000.
Run Tests: npm run test
Verify calculateGpa.test.js passes.
Deploy to Vercel:
Push changes to the repository. Connect to Vercel via the dashboard and deploy the feature/enhanced-landing-page branch.
Documentation Structure
- Personas: User profiles for students and advisors.
- Journey Maps: User interactions and pain points.
Contributing
We welcome contributions to improve the GPA Calculator! To get started:
Create a branch from feature/enhanced-landing-page (e.g., feature/add-new-functionality). Submit pull requests with clear descriptions and tests. Report issues via the repository’s issue tracker.
Support
For questions or issues:
Contact: File an issue on the repository or contact the maintainers.
License The GPA Calculator is open-source under the [MIT License].
Last Updated: April 22, 2025Branch: feature/enhanced-landing-pageMaintainers: [amaya-wickramaarachchi]