GradeFlow is a modern, high-precision CGPA calculator designed specifically for students of Lagos State University (LASU). It simplifies the complex process of tracking academic performance by providing an intuitive interface to calculate GPAs and CGPAs based on the university's official 5.0 grading system.
Built with a robust Java (Javalin) backend and a dynamic React frontend, GradeFlow ensures accuracy, privacy, and a seamless user experience across all devices.
- Implements the official LASU grading logic (A=5.0, B=4.0, etc.).
- Automatically handles grade points and quality points calculation.
- Supports both raw scores (0-100) and direct grade point inputs.
- Interactive Calculator: Add unlimited semesters and courses.
- Real-time Updates: See your GPA and CGPA update instantly as you input grades.
- Visual Feedback: Color-coded grades (Green for A, Red for F) for immediate clarity.
- Generate professional academic reports in seconds.
- Download a clean, printable PDF of your entire semester results and cumulative standing.
- No Database Storage: All calculations happen in real-time. Your academic data is never stored on our servers.
- Local Persistence: Data is temporarily preserved in your browser session for convenience but remains under your control.
- Fully responsive design that works perfectly on smartphones, tablets, and desktops.
- "App-like" feel with smooth transitions and touch-friendly controls.
- React 19: For building a dynamic, component-based user interface.
- Vite: Next-generation frontend tooling for lightning-fast builds.
- Tailwind CSS: Utility-first CSS framework for modern, responsive styling.
- Framer Motion: For "Award-winning" smooth scroll animations and page transitions.
- Lucide React: Beautiful, consistent icons.
- Java 17: Robust, strongly-typed language for core logic.
- Javalin: Lightweight web framework for creating a fast, simple REST API.
- Maven: Dependency management and build automation.
- Docker: Containerization for consistent deployment environments.
- Render: Cloud hosting platform for seamless delivery.
The core calculation logic is built using Object-Oriented Programming (OOP) principles in Java, ensuring modularity and maintainability.
Represents the user. It holds a list of semesters and calculates the final Cumulative Grade Point Average (CGPA).
public class Student {
private List<Semester> semesters = new ArrayList<>();
private double cgpa;
public void calculateCGPA() {
double totalPoints = 0;
int totalUnits = 0;
for (Semester sem : semesters) {
for (Course c : sem.getCourses()) {
totalPoints += c.getQualityPoint();
totalUnits += c.getCreditUnits();
}
}
this.cgpa = totalUnits > 0 ? totalPoints / totalUnits : 0.0;
}
}Represents a single academic term. It aggregates courses and calculates the Grade Point Average (GPA) for that specific term.
public class Semester {
private List<Course> courses = new ArrayList<>();
private double gpa;
public void calculateGPA() {
// Sums quality points of all courses and divides by total units
}
}The fundamental unit. It encapsulates the logic for converting a raw score (e.g., 72) into a grade (A) and a grade point (5.0).
public class Course {
private double score;
private int gradePoint;
private void calculateGrade() {
if (score >= 70) { grade = "A"; gradePoint = 5; }
else if (score >= 60) { grade = "B"; gradePoint = 4; }
// ... handles all LASU grading rules
}
}| Calculator interface | Features Interface |
|---|---|
![]() |
![]() |
| Mobile View | PDF Report |
|
|
|
Follow these steps to run GradeFlow locally on your machine.
- Java JDK 17 or higher
- Node.js 18 or higher
- Maven
git clone https://github.com/oladosuabayomi/GradeFlow.git
cd GradeFlowNavigate to the frontend directory, install dependencies, and build the static assets.
cd cgpa-frontend
npm install
npm run buildThis will generate a dist folder containing the compiled React app.
Copy the built frontend files to the Java backend's resource folder so Javalin can serve them.
# From the project root
cp -r cgpa-frontend/dist/* src/main/resources/public/Use Maven to compile and run the Java server.
mvn clean package
java -jar target/cgpa-calculator-1.0-SNAPSHOT.jarVisit http://localhost:7000 in your browser.
We welcome contributions to make GradeFlow even better!
- Fork the repository.
- Create a new Branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.


