https://github.com/armanbhatia0100/employee-timesheet-management-program
The Employee Timesheet Management System is a robust Java-based application designed for organizations to manage employee work hours efficiently. It enables employees to log their time, managers to review and approve timesheets, and administrators to oversee the entire process
https://github.com/armanbhatia0100/employee-timesheet-management-program
java java-8 spring-boot
Last synced: 3 months ago
JSON representation
The Employee Timesheet Management System is a robust Java-based application designed for organizations to manage employee work hours efficiently. It enables employees to log their time, managers to review and approve timesheets, and administrators to oversee the entire process
- Host: GitHub
- URL: https://github.com/armanbhatia0100/employee-timesheet-management-program
- Owner: ArmanBhatia0100
- Created: 2024-12-25T16:45:06.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-03-04T02:07:25.000Z (4 months ago)
- Last Synced: 2025-03-04T03:19:44.004Z (4 months ago)
- Topics: java, java-8, spring-boot
- Language: Java
- Homepage:
- Size: 11.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Employee Timesheet Management System
## 📌 Project Overview
The **Employee Timesheet Management System** is a robust Java-based application designed for organizations to manage employee work hours efficiently. It enables employees to log their time, managers to review and approve timesheets, and administrators to oversee the entire process. The system ensures accurate tracking, approval workflows, and historical data retention.## 🚀 Key Features
### Employee Management
- Add new employees with unique employee IDs.
- Update employee details such as name, department, and role.
- Remove employees who are no longer part of the organization.### Timesheet Management
- Employees can log daily work hours, specify project details, and add remarks.
- Timesheets can be submitted weekly or bi-weekly for review.
- Employees can view and track their past timesheets.
- Request modifications to logged work hours.### Manager Review & Approval
- Managers can review submitted timesheets.
- Approve or reject timesheets with feedback.
- Modify employee timesheets if necessary.
- Track the approval history of timesheets.### Authentication & Authorization
- Secure login using **Spring Security and JWT authentication**.
- Role-based access control (RBAC) for Employees, Managers, and Admins.
- Password encryption using **BCrypt**.
- API token expiration and refresh mechanisms.### Database & Data Management
- **MySQL database** integration for secure and efficient data storage.
- Hibernate ORM for database transactions.
- Automated schema generation and validation.
- Audit logs for timesheet modifications.## 🛠️ Technology Stack
- **Backend**: Java 17, Spring Boot 3.0, Hibernate, Spring Security, JWT
- **Database**: MySQL with Hibernate ORM
- **API**: RESTful API with Swagger documentation
- **Frontend (Optional)**: React.js for user interaction
- **Build Tool**: Maven## 📥 Setup Instructions
### 1️⃣ Clone the Repository
```bash
git clone https://github.com/your-username/employee-timesheet-system.git
cd employee-timesheet-system
```### 2️⃣ Database Configuration
Ensure MySQL is installed and running. Create the database:
```sql
CREATE DATABASE timesheet_db;
```
Update the `application.properties` file with correct database credentials:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/timesheet_db
spring.datasource.username=root
spring.datasource.password=yourpassword
spring.jpa.hibernate.ddl-auto=update
```### 3️⃣ Running the Application
```bash
mvn clean install
mvn spring-boot:run
```## 📝 API Endpoints
### Employee APIs
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/employees` | GET | Get all employees |
| `/api/employees/{id}` | GET | Retrieve employee details |
| `/api/employees` | POST | Create a new employee |
| `/api/employees/{id}` | PUT | Update employee details |
| `/api/employees/{id}` | DELETE | Remove an employee |### Timesheet APIs
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/timesheets` | GET | Retrieve all timesheets |
| `/api/timesheets/{id}` | GET | View a specific timesheet |
| `/api/timesheets` | POST | Submit a new timesheet |
| `/api/timesheets/{id}` | PUT | Modify an existing timesheet |
| `/api/timesheets/{id}/approve` | POST | Approve a timesheet |
| `/api/timesheets/{id}/reject` | POST | Reject a timesheet with feedback |### Authentication APIs
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/auth/register` | POST | Register a new user |
| `/api/auth/login` | POST | Authenticate user and generate JWT token |
| `/api/auth/logout` | POST | Invalidate session |## 🔐 Security Implementation
- **Spring Security with JWT** for user authentication.
- **Role-based access control** ensuring managers and admins have restricted privileges.
- **Password encryption** using BCrypt for enhanced security.
- **Token expiration and refresh tokens** for secure API usage.## 🖥️ User Roles & Permissions
- **Employee**: Logs hours, submits timesheets, requests modifications.
- **Manager**: Reviews, approves, or rejects timesheets.
- **Administrator**: Manages employees, monitors system logs, and enforces compliance policies.## 📸 Screenshots
(Include relevant screenshots of UI, API responses, or workflow diagrams)## 🚀 Future Enhancements
- **Automated email notifications** for timesheet approvals and rejections.
- **Graphical reports** for work hour analysis.
- **Mobile-friendly UI** using React Native or Flutter.## 🤝 Contribution Guidelines
- Fork the repository.
- Create a new branch for your feature or fix.
- Submit a pull request with proper documentation.## 📜 License
This project is licensed under the MIT License.---
**⭐ If you find this project useful, please star the repository!**