https://github.com/nishant916/tracker
A web application for teachers to efficiently manage student attendance, track academic performance, and generate reports.
https://github.com/nishant916/tracker
bootstrap chartjs html2canvas html5 java javascript jspdf mysql springboot
Last synced: 5 months ago
JSON representation
A web application for teachers to efficiently manage student attendance, track academic performance, and generate reports.
- Host: GitHub
- URL: https://github.com/nishant916/tracker
- Owner: nishant916
- Created: 2025-01-25T14:59:18.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-11T22:38:31.000Z (over 1 year ago)
- Last Synced: 2025-06-03T10:02:06.733Z (about 1 year ago)
- Topics: bootstrap, chartjs, html2canvas, html5, java, javascript, jspdf, mysql, springboot
- Language: Java
- Homepage:
- Size: 1.88 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Classroom Attendance and Performance Tracker
A web application for teachers to efficiently manage student attendance, track academic performance, and generate reports.
## Table of Contents
1. [Features](#1-features)
- Attendance Management
- Performance Tracking
- Course Management
- Reporting
2. [Screenshots](#2-screenshots)
3. [Technologies Used](#3-technologies-used)
- Languages
- Frameworks
- Tools
4. [Getting Started](#4-getting-started)
5. [User Guide](#5-user-guide)
6. [Contributing](#6-contributing)
7. [License](#7-license)
8. [Contributors](#8-contributors)
## 1. Features
### π Attendance Management
**Take Attendance**: Mark students as present, absent, or late for a particular class. If attendance data is populated in database, then drop-down label shows that value.
**View Attendance**: Active & completed courses in sections in drop-down. Viewing attendance is for an entire course. Cells in display table have present, absent or late colour-coded values.
### π Performance Tracking
**Edit Grades**: Input grades for a particular exam. If grades data is populated in database, input field label shows that value. Oninput validation is used.
**View Grades**: Viewing grades is for an entire course. Displays all the exams in a chosen course and calculated final grade in percentage.
### ποΈ Course Management
Settings can be modified for active or all courses. A course can be toggled active or completed. Attendance can be enabled or disabled. Total number of classes and minimum attendance percentage is available.
Total number of exams, the name of each exam, maximum grades and weightage can be modified. Oninput validation is used.
### π Reporting
**All Charts can be exported to PDF**
Dashboard: Interactive Tooltip with Highlighting when hovering over a column (bar graph) or a section (pie chart).
**Courses Overview**: Displays total number of active & completed courses. Bar graph for number of students in each course.
**Attendance Summary (Active Courses)**: Shows the name of course, total number of students in each course, percentage of classes completed in each of active courses. Pie chart for percentage of students who were present, absent or late. Gives a list of students whose attendance is below minimum requirement.
**Performance Summary**: (Active Courses) Bar graphs display all exams in each active course. Highest, lowest, average & median grades are shown.
(Completed Courses) Bar graph shows number of students corresponding to score ranges in both percentage & German grading format.
**All Views can exported to CSV**
View Attendance & View Grades: Display table is converted to CSV file. CSV file is named according to selected course name.
## 2. Screenshots









## 3. Technologies Used
### π₯οΈ Languages
- **HTML5 & CSS** π β For structuring and styling web pages.
- **JavaScript** β‘ β For interactive client-side scripting.
- **Java 23** β β Primary programming language.
- **CSV Files** π β Used for initial data import.
- **MySQL Database** π¬ β Relational database for storing data.
### π¦ Frameworks
- **Bootstrap** π¨ β UI framework for responsive design.
- **Chart.js** π β Library for data visualization.
- **jsPDF & HTML2Canvas** π β For exporting PDFs from web content.
- **Spring Boot** π± β Core framework for Java application.
- **Spring Data JPA** π β ORM framework for database interactions.
- **Hibernate** ποΈ β JPA implementation for object-relational mapping.
- **Spring Web** π β For building RESTful APIs.
- **Spring Service Layer** ποΈ β Handles business logic in the application.
### π οΈ Tools
- **IntelliJ IDEA** ποΈ β Main IDE for Java & Spring Boot development.
- **MySQL** π¬ β Database management system.
- **Sublime Text** βοΈ β Lightweight text editor for HTML & CSS.
- **Visual Studio Code** ποΈ β A versatile code editor for front-end development.
- **GitHub** π β Version control and project collaboration platform.
- **Notepad++** π - Text editor for fast and easy modifications.
## 4. Getting Started
### π Prerequisites
Ensure the following is installed
- Java 23
- IntelliJ IDEA
- MySQL
- Git
### π₯ Installation
1οΈβ£ **Clone the Repository**
- Open IntelliJ IDEA.
- Click on "Get from Version Control" on the welcome screen (or go to VCS > Get from Version Control in the top menu).
- Paste the repository URL:
```bash
https://github.com/nishant916/tracker.git
```
- Choose your local directory to clone the project into and click Clone.
- **Alternatively** open a terminal and run the following commands:
```bash
git clone https://github.com/nishant916/tracker.git
cd tracker
```
2οΈβ£ **Configure the Database**
- Open MySQL and create a new database:
```bash
CREATE DATABASE teacher_management;
```
- Update your application.properties file
```bash
spring.datasource.url=jdbc:mysql://localhost:3306/teacher_management
spring.datasource.username=root
spring.datasource.password=
```
3οΈβ£ **Install Dependencies**
- Using Maven, open a terminal and run the following command from the root directory of the project:
```bash
mvn clean install
```
- This will download and install all the dependencies listed in the pom.xml file.
### π Running the Application
- Open the project in IntelliJ IDEA
- Navigate to TrackerApplication.java
- Click Run βΆοΈ
- **Alternatively** open a terminal and run this command inside the project folder:
```bash
mvn spring-boot:run
```
- The application should now be running at `http://localhost:8080` π
## 5. User Guide
### ποΈ Login
- Teachers must log in using their username and password.
- These credentials are provided by the admin.
- Click "Sign in" to access the teacher dashboard.
### π Teacher Dashboard
- Navbar for ease of navigation has appeared.
- Teachers can click on the "Export to PDF" button on the top right of every chart.
- The chart will be downloaded as a PDF.
### β
Take Attendance
- Select an active course & then select a class number from drop-downs.
- A table will appear with student details and the class column with a drop-down for present/absent/late marking.
- Click on "Save Changes".
### π
View Attendance
- Select an active or completed course from the drop-down.
- A table will appear with student details and colour-coded present/absent/late values for all classes in the course.
- Click on "Export to CSV" to get details into Excel.
### βοΈ Edit Grades
- Select an active course & then select an exam number from drop-downs.
- A table will appear with student details and the exam column with an input field.
- Enter the grades & click on "Save Changes".
### π View Grades
- Select an active or completed course from the drop-down.
- A table will appear with student details, all exam grades in the course & calculated final grade.
- Click on "Export to CSV" to get details into Excel.
### βοΈ Course Settings
- **Course Settings**: Choose active or all courses from drop-down. A course can be toggled active or completed.
- **Attendance Settings**: Attendance can be toggled enabled or disabled, total number of classes for a course chosen from drop-down (max = 10) & minimum percentage required chosen (from 50% to 100% or "no min attendance").
- **Grade Settings**: Total number of exams chosen from drop-down (max = 10), input exam names, input maximum marks & choose weightage (from 0% to 100%).
- Click on "Save Changes".
### πͺ Logout
- Hover over teacher's username on top-right corner of navbar.
- Click on "Logout".
- Teacher will be redirected to Login Page in 5 seconds.
## 6. Contributing
We welcome contributions! To get started:
### π΄ Fork & Clone
Click on the Fork button at the top-right of the repository page. Open IntelliJ IDEA. Click "Get from Version Control", enter:
```bash
https://github.com//tracker.git
```
### πΏ Create a Branch
Go to Git > Branches > New Branch, name it appropriately.
### βοΈ Make Changes & Commit
Modify the code and commit via IntelliJβs Git tool window.
### π Push & Open a PR
Push changes (VCS > Git > Push) and submit a Pull Request on GitHub.
### π‘ Found a bug?
Open an issue in the Issues tab.
## 7. License
This project was developed as part of a university programming course and is intended for educational purposes only.
- Usage: You may review and learn from the code.
- Restrictions: Redistribution, commercial use, or modification for external projects may require permission.
- Ownership: The work belongs to the project contributors and the university course.
## 8. Contributors
This project was developed as part of the **Programming II course in the BSc Computer Science degree at SRH Berlin University**.
### π€ Project Team:
- Nishant Malik
- Amrutha Manjunath
- Pruekson Lukkanothai