RevWorkForce is a full-stack monolithic Human Resource Management web application designed to streamline employee management, automate leave tracking, and enhance performance review processes for modern organizations.
The system supports three user roles:
- Employees - Self-service portal
- Managers - Team management and approvals
- Admins - System configuration and reporting
- Secure Authentication - Spring Security 6 with BCrypt password encryption
- Role-Based Access Control - Three user roles (Employee, Manager, Admin)
- Performance Management - Goal setting, tracking, and performance reviews
- Leave Management - Automated leave balance tracking and approval workflows
- Announcements - Company-wide communication system
- Audit Trail - Comprehensive activity logging for compliance
- Responsive Ui Design - Works seamlessly improves Ui/Ux
| Profile | Name | Role | GitHub | Contributions | |
|---|---|---|---|---|---|
|
Mastan Sayyad | Team Lead, Backend, System Design, Authentication, UI/UX, Documentation, CI/CD and Testing |
|
|
View |
|
Gururaj Shetty | UI Lead, Backend Ops, Admin Operations, System Config, Documentation & Testing |
|
|
View |
|
Aishwarya MS | Backend Lead, Ui, Leave Module, Notification Module, Holiday Module, Testing |
|
|
View |
|
Shahla Nigar | Backend Lead Performance Module, Performance Reviews, goal, Testing & QA |
|
|
View |
RevWorkForce
│
├── database/ # SQL scripts for schema and seed data
│ ├── schema.sql
│ ├── seed_data.sql
│ └── create_user.sql
│
├── docs/ # Project documentation
│ ├── Diagrams/ # Architecture & UML diagrams
│ ├── Documentations/ # Module documentation
│ └── Testing Artifacts/ # SonarQube, JaCoCo reports
│
├── jenkins/ # CI/CD pipeline configuration
│ └── Jenkinsfile
│
├── src/
│ ├── main/
│ │ ├── java/com/revature/revworkforce/
│ │ │ ├── config/ # Spring configuration classes
│ │ │ ├── controller/ # REST & MVC controllers
│ │ │ ├── dto/ # Data Transfer Objects
│ │ │ ├── enums/ # Enum definitions
│ │ │ ├── exception/ # Custom exception handling
│ │ │ ├── model/ # Entity models
│ │ │ ├── repository/ # Spring Data JPA repositories
│ │ │ ├── scheduler/ # Scheduled background tasks
│ │ │ ├── security/ # Authentication & authorization
│ │ │ ├── service/ # Service interfaces
│ │ │ │ └── impl/ # Service implementations
│ │ │ └── util/ # Utility/helper classes
│ │ │
│ │ └── resources/
│ │ ├── static/ # CSS, JS, images
│ │ └── templates/ # Thymeleaf UI templates
│ │
│ └── test/
│ └── java/com/revature/revworkforce/
│ ├── controller/ # Controller unit tests
│ ├── repository/ # Repository tests
│ ├── service/ # Service tests
│ └── util/ # Utility tests
│
├── logs/ # Application log files
│
├── pom.xml # Maven configuration
├── sonar-project.properties # SonarQube configuration
└── README.md # Project documentation
Note
The application follows a role-based access control model with three roles: Employee, Manager, and Administrator.
| Employee | Manager | Administrator |
|---|---|---|
| Personal dashboard with analytics and upcoming events | Team management and team member overview | Full employee management (CRUD operations) |
| Leave management – apply, track, and view leave balance | Review and approve/reject leave requests | Manage departments, designations, holidays, and leave types |
| Performance and goals tracking with self-assessment | Monitor and guide team member goals | Generate analytics and organizational reports |
| View company announcements and updates | Conduct performance reviews and provide feedback | Maintain audit logs for compliance and activity tracking |
| Manage personal profile and employment information | Track team performance and attendance metrics | Manage company-wide announcements |
| Receive real-time system notifications | Access team dashboards and insights | System configuration and administrative controls |
Note
RevWorkForce follows agile practices and an iterative development approach, where the development cycle is repeated multiple times. Each iteration delivers a new release that adds new features or refines existing functionality.
Note
RevWorkForce follows a MVC Monolithic layered architecture pattern for maintainability and scalability:
- MVC (Model-View-Controller) - Separation of concerns
- Repository Pattern - Data access abstraction
- Service Layer Pattern - Business logic encapsulation
- DTO Pattern - Data transfer between layers
- Dependency Injection - Loose coupling via Spring IoC
EMPLOYEES (1) ←→ (N) EMPLOYEE_ROLES ←→ (N) ROLES
EMPLOYEES (1) ←→ (N) LEAVE_APPLICATIONS
EMPLOYEES (1) ←→ (N) GOALS
EMPLOYEES (1) ←→ (N) PERFORMANCE_REVIEWS
DEPARTMENTS (1) ←→ (N) EMPLOYEES
EMPLOYEES (Manager) (1) ←→ (N) EMPLOYEES (Reports)
| Technology | Version | Purpose |
|---|---|---|
| Java | 17 | Primary programming language |
| Spring Boot | 3.2.x | Application framework |
| Spring Security | 6.x | Authentication & Authorization |
| Spring Data JPA | 3.2.x | Data persistence layer |
| Hibernate | 6.x | ORM framework |
| Maven | 3.9+ | Build & dependency management |
| Technology | Version | Purpose |
|---|---|---|
| Thymeleaf | 3.1.x | Server-side template engine |
| Bootstrap | 5.3.x | UI framework |
| JavaScript | ES6+ | Client-side interactivity |
| HTML5/CSS3 | - | Markup & styling |
| Technology | Version | Purpose |
|---|---|---|
| Oracle Database | 21c XE | Primary data store |
| HikariCP | Latest | Connection pooling |
| Tool | Version | Purpose |
|---|---|---|
| JaCoCo | 0.8.10 | Code coverage (60%+) |
| SonarQube | Latest | Code quality analysis |
| Checkstyle | Latest | Code style enforcement |
| PMD | Latest | Static code analysis |
| Jenkins | Latest | CI/CD automation |
Before installing RevWorkForce, ensure you have the following installed:
| Software | Version | Download Link |
|---|---|---|
| Java JDK | 17 or higher | Download |
| Maven | 3.9+ | Download |
| Oracle Database | 21c XE | Download |
| Git | Latest | Download |
| Software | Purpose |
|---|---|
| Eclipse | IDE |
| IntelliJ IDEA | Recommended IDE |
| Docker | For SonarQube & Jenkins |
| Postman | API testing |
# Check Java version
java -version
# Expected: java version "17.x.x"
# Check Maven version
mvn -version
# Expected: Apache Maven 3.9.x
# Check Oracle Database
sqlplus / as sysdba
# Should connect successfullygit clone https://github.com/yourusername/RevWorkForce.git
cd RevWorkForceNote
If you don't have Git installed, you can download the ZIP file from the repository page.
-- Connect as SYSDBA
sqlplus / as sysdba
-- Create user
CREATE USER your_db_name IDENTIFIED BY "your_password";
-- Grant privileges
GRANT CONNECT, RESOURCE, DBA TO your_db_name;
GRANT UNLIMITED TABLESPACE TO your_db_name;
-- Verify
SELECT username FROM dba_users WHERE username = 'your_db_name';Important
Security Note: Change the default password RevWork@2026 to a strong password in production environments.
The application will automatically create tables on first run if configured correctly.
Tip
Set spring.jpa.hibernate.ddl-auto=update in application.properties for automatic table creation during development.
# Run the database initialization script
sqlplus revworkforce/RevWork@2026@localhost:1521/XEPDB1 @src/main/resources/db/schema.sqlCaution
Production Warning: Never use ddl-auto=create or ddl-auto=create-drop in production as it will delete all your data!
Edit src/main/resources/application.properties:
# ==========================================
# SERVER CONFIGURATION
# ==========================================
server.port=8082
server.servlet.context-path=/
# ==========================================
# DATABASE CONFIGURATION
# ==========================================
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:XEPDB1 or XE
spring.datasource.username=user_db_name
spring.datasource.password=db_password
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
# Other Required Configurations
Warning
Never commit sensitive credentials to version control! Use environment variables or encrypted configuration in production.
# Install Maven dependencies
mvn clean install -DskipTestsNote
The first build may take 3-5 minutes as Maven downloads all dependencies.
Create profile-specific property files:
application.properties # Development
application-test.properties # Testing
# Run with Maven
mvn spring-boot:run
# Run on custom port
mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8082# Package the application
mvn clean package -DskipTests
# Run the JAR
java -jar target/revworkforce-1.0.0.jar
# Run with custom memory settings
java -Xms512m -Xmx1024m -jar target/revworkforce-1.0.0.jar- Open project in IntelliJ IDEA or Eclipse
- Locate
RevWorkForceApplication.java - Right-click → Run 'RevWorkForceApplication'
# Check console output for:
# Started RevWorkForceApplication in X.XXX seconds
# Access application
http://localhost:8082
# Check health endpoint
http://localhost:8082/actuator/healthTip
First Run: Application may take 20-30 seconds to start as it initializes database connections and creates tables.
# Run all tests
mvn test
# Run specific test class
mvn test -Dtest=EmployeeServiceImplTest
# Run tests with coverage
mvn clean test jacoco:report
# View coverage report
open target/site/jacoco/index.htmlNote
Coverage reports are generated in target/site/jacoco/index.html after running mvn test jacoco:report
# Start SonarQube (Docker)
docker run -d --name sonarqube -p 9000:9000 sonarqube:latest
# Run analysis
mvn clean verify sonar:sonar \
-Dsonar.projectKey=revworkforce \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.token=YOUR_TOKENTip
Run SonarQube analysis before every release to ensure code quality standards are met.
- Checkout - Pull latest code from repository
- Build - Compile source code
- Test - Run unit tests (60%+ coverage required)
- SonarQube - Code quality analysis (optional)
- Quality Gate - Enforce quality standards
- Package - Create deployable JAR
- Deploy - Deploy to staging/production
Important
The pipeline will fail if Quality Gate criteria are not met. Fix all critical issues before merging.
Note
This includes project execution metrics such as burn-up charts, timeline-based contribution analysis, and sprint workflow visualization for monitoring progress and productivity.
For more information, see:
- README.md - Project overview
- Project Report - Project report including objectives, methodology, and outcomes
- User Manual - Step-by-step project build and usage guide Instructions
- Jenkins Ci Documentations - complete CI (Continuous Integration) setup
- PPT Slides - Project presentation slides
- API Documentation - Application workflows and module interactions
- Diagrams & Charts - Architecture and UML diagrams, ERD, and system design visuals
- Testing Artifacts - Test strategy, coverage details, and reports











