A modern SaaS platform built for organizations to manage employees, projects, teams, tasks, HR operations, recruitment, communication, analytics, and collaboration β all within isolated multi-tenant workspaces.
WorkNest is a modern enterprise Software-as-a-Service (SaaS) platform that enables multiple organizations to operate independently inside a single application while maintaining complete data isolation.
Every registered company receives its own dedicated tenant database, allowing organizations to securely manage:
- Employees
- Departments
- Teams
- Projects
- Tasks
- Recruitment
- Attendance
- Leave Management
- Performance
- Notifications
- Real-time Chat
- Announcements
- Reports
- Analytics
without sharing data with any other organization.
The platform is designed around multi-tenant architecture, making it suitable for commercial SaaS deployment where hundreds or even thousands of organizations can be served from a single application.
- Multi-tenant architecture
- Organization onboarding
- Automatic tenant provisioning
- Dedicated tenant databases
- Secure tenant isolation
- Platform administration
- Employee Profiles
- Departments
- Designations
- Teams
- Reporting Managers
- Employment History
- Documents
- Employee Search
- Employee Directory
- Project Lifecycle
- Milestones
- Team Assignment
- Progress Tracking
- Deadlines
- Attachments
- Project Statistics
- Kanban Board
- Task Priorities
- Task Status
- Task Comments
- File Attachments
- Due Dates
- Activity Timeline
- Assignment Workflow
- Team Chat
- Project Conversations
- Instant Notifications
- WebSocket Messaging
- STOMP Protocol
- Online Presence
- Announcements
- Company Notifications
- Team Notifications
- Read Receipts
- Broadcast Messages
- Daily Attendance
- Check In
- Check Out
- Attendance Reports
- Attendance Analytics
- Leave Requests
- Leave Approval Workflow
- Leave Types
- Leave Balance
- Leave History
- Job Vacancies
- Applicant Tracking
- Interview Scheduling
- Candidate Pipeline
- Recruitment Dashboard
- Organization Dashboard
- Employee Statistics
- Project Analytics
- Attendance Analytics
- Recruitment Analytics
- Performance Metrics
- Reports
- JWT Authentication
- Refresh Tokens
- Role Based Access Control (RBAC)
- Secure Password Hashing
- Protected REST APIs
- Tenant Isolation
- CORS Protection
- CSRF Protection
- Spring Security
Internet
β
β
Reverse Proxy
(Traefik / Nginx)
β
βββββββββββββββββ΄ββββββββββββββββ
β β
β β
Frontend (React) Spring Boot API
β β
β Authentication
β Authorization
β Tenant Resolver
β Business Logic
β β
βββββββββββββββββ¬ββββββββββββββββ
β
Platform Database
(platform_master)
β
βββββββββββββββββΌββββββββββββββββ
β β β
β β β
tenant_alpha tenant_beta tenant_gamma
MySQL MySQL MySQL
Unlike traditional applications where every customer shares the same tables, WorkNest provides complete tenant isolation.
Platform
β
βββ platform_master
β β
β βββ Company A
β βββ Company B
β βββ Company C
β βββ ...
β
βββ tenant_company_a
β βββ employees
β βββ projects
β βββ tasks
β βββ chats
β βββ ...
β
βββ tenant_company_b
β βββ employees
β βββ projects
β βββ tasks
β βββ ...
β
βββ tenant_company_c
Each tenant receives:
- Dedicated database
- Dedicated datasource
- Independent connection pool
- Complete data isolation
- Independent transactions
- Independent caching
| Technology | Version |
|---|---|
| Java | 21 |
| Spring Boot | 3.3 |
| Spring Security | 6 |
| Spring Data JPA | Latest |
| Hibernate | 6 |
| MySQL | 8 |
| JWT | 0.11 |
| STOMP | Latest |
| WebSocket | Spring |
| Maven | Latest |
| Technology | Version |
|---|---|
| React | 19 |
| TypeScript | 5 |
| Vite | Latest |
| Tailwind CSS | Latest |
| React Router | Latest |
| Axios | Latest |
- Docker
- Docker Compose
- Dokploy
- Traefik
- GitHub Actions (planned)
- Supabase Storage
- SMTP
- Let's Encrypt
WorkNest
β
βββ WorkNest-Service-Springboot
β
βββ src
β βββ auth
β βββ config
β βββ security
β βββ master
β βββ tenant
β βββ websocket
β βββ notification
β βββ recruitment
β βββ employee
β βββ project
β βββ task
β βββ attendance
β βββ leave
β βββ analytics
β βββ reports
β βββ storage
β βββ common
β
βββ docker
βββ docs
βββ scripts
βββ pom.xml
βββ README.md
WorkNest follows enterprise software engineering principles:
- Clean Architecture
- Layered Architecture
- Domain Driven Design
- SOLID Principles
- Repository Pattern
- DTO Pattern
- Dependency Injection
- Secure by Default
- Stateless REST APIs
- Production Ready Logging
- Container Ready
- Cloud Native Design
Unlike many internal HR systems, WorkNest is designed as a true SaaS platform.
β Multi-Tenant
β Enterprise Security
β Horizontal Scalability
β Cloud Ready
β Container Ready
β Production Ready
β Docker Native
β Modern REST APIs
β Real-Time Communication
β Modular Architecture
β Role Based Access Control
β Automatic Tenant Provisioning
β Enterprise Authentication
Screenshots will be added soon.
Dashboard
[ Screenshot Here ]
------------------------------------------------
Projects
[ Screenshot Here ]
------------------------------------------------
Kanban Board
[ Screenshot Here ]
------------------------------------------------
Recruitment
[ Screenshot Here ]
------------------------------------------------
Analytics
[ Screenshot Here ]
The project documentation is organized under the /docs directory.
| Document | Description |
|---|---|
| Architecture | System Architecture |
| Deployment | Production Deployment Guide |
| Docker | Docker Setup |
| API | REST API |
| Security | Security Guide |
| Multi-Tenant | Tenant Architecture |
| Database | Database Design |
The WorkNest backend is organized into modular business domains, enabling independent development, scalability, and maintainability.
Responsible for authentication and identity management.
- User Login
- User Logout
- JWT Access Token
- Refresh Token
- Password Reset
- Email Verification
- Secure Password Hashing
- Token Rotation
- Session Validation
The platform administration module manages the SaaS platform itself.
- Platform Admin Management
- Tenant Registration
- Tenant Approval
- Tenant Provisioning
- Tenant Database Creation
- Platform Configuration
- Platform Analytics
Each organization is represented as an isolated tenant.
Responsibilities include:
- Tenant Creation
- Tenant Configuration
- Database Provisioning
- Connection Pool Management
- Tenant Isolation
- Tenant Lifecycle
Provides complete employee lifecycle management.
- Employee Registration
- Employee Profile
- Department Assignment
- Team Assignment
- Designation Management
- Employment Status
- Profile Image
- Employee Documents
- Search & Filtering
- Department Creation
- Department Updates
- Employee Assignment
- Department Statistics
- Team Creation
- Team Leaders
- Team Members
- Team Projects
- Team Chat
Project lifecycle management.
- Create Project
- Update Project
- Archive Project
- Project Status
- Milestones
- Members
- Progress Tracking
Powerful Kanban-based task management.
- Task Creation
- Assignment
- Priorities
- Due Dates
- Labels
- Comments
- Attachments
- Activity Timeline
- Status Updates
Task States
TODO
β
IN PROGRESS
β
REVIEW
β
DONE
Real-time communication powered by WebSockets.
Supports:
- Team Chat
- Project Chat
- Direct Messaging
- Read Status
- Message History
- Notifications
Event-driven notification system.
Examples:
- New Task
- Task Assigned
- Leave Approved
- Interview Scheduled
- Employee Joined
- Announcement Published
Broadcast organization-wide announcements.
Supports:
- Rich Text
- Priority Levels
- Attachments
- Audience Targeting
Employee attendance management.
Features:
- Check In
- Check Out
- Attendance History
- Reports
- Analytics
Leave management workflow.
Features
- Leave Requests
- Leave Types
- Approvals
- Rejections
- Leave Balance
- History
Applicant Tracking System (ATS)
Features
- Job Positions
- Candidates
- Interview Scheduling
- Interview Feedback
- Hiring Pipeline
- Candidate Documents
Generates organization reports.
Includes
- Employee Reports
- Attendance Reports
- Leave Reports
- Recruitment Reports
- Project Reports
Business intelligence dashboard.
Provides
- KPIs
- Employee Analytics
- Productivity
- Recruitment Insights
- Attendance Statistics
File management using Supabase Storage.
Supports
- Images
- Documents
- Attachments
- Reports
Security is implemented across multiple layers.
Request
β
βΌ
Spring Security Filter
β
βΌ
CORS Validation
β
βΌ
JWT Validation
β
βΌ
Tenant Resolution Filter
β
βΌ
Authorization Check
β
βΌ
Controller Layer
β
βΌ
Business Logic
β
βΌ
Database
User
β
β Login
βΌ
Spring Security
β
βΌ
Authentication Manager
β
βΌ
UserDetailsService
β
βΌ
Database
β
βΌ
JWT Generation
β
βΌ
Access Token
Refresh Token
β
βΌ
Client
WorkNest uses Role-Based Access Control (RBAC).
PLATFORM_ADMIN
TENANT_ADMIN
ADMIN
HR
MANAGER
TEAM_LEAD
EMPLOYEE
Each API endpoint is protected based on user roles.
Every request passes through tenant resolution before accessing business data.
Incoming Request
β
βΌ
Extract Tenant Header
β
βΌ
Validate JWT
β
βΌ
Load Tenant
(platform_master)
β
βΌ
Resolve DataSource
β
βΌ
Tenant Database
β
βΌ
Execute Business Logic
MySQL Server
β
ββββββββββββββββββββββΌβββββββββββββββββββββ
β β β
platform_master tenant_companyA tenant_companyB
β β β
β β β
Platform Tables Business Data Business Data
Stores platform-wide information.
Typical entities:
- Platform Users
- Platform Roles
- Tenants
- Refresh Tokens
- Tenant Metadata
Each tenant contains its own business data.
Typical entities:
- Employees
- Departments
- Teams
- Projects
- Tasks
- Chat
- Notifications
- Leave
- Attendance
- Recruitment
Register Company
β
βΌ
Validate Input
β
βΌ
Create Tenant Record
(platform_master)
β
βΌ
Create Database
tenant_company
β
βΌ
Initialize Schema
β
βΌ
Seed Default Data
β
βΌ
Create Admin User
β
βΌ
Tenant Ready
src/
βββ auth/
βββ common/
βββ config/
βββ exception/
βββ master/
β βββ controller/
β βββ entity/
β βββ repository/
β βββ service/
β
βββ notification/
βββ security/
β βββ filter/
β βββ jwt/
β βββ config/
β
βββ storage/
βββ tenant/
β βββ attendance/
β βββ employee/
β βββ leave/
β βββ project/
β βββ recruitment/
β βββ reports/
β βββ task/
β βββ analytics/
β
βββ websocket/
βββ Main.java
Browser
β
Traefik
β
Spring Boot
β
Security Filter
β
JWT Filter
β
Tenant Filter
β
Controller
β
Service
β
Repository
β
JPA
β
MySQL
Client
β
βΌ
WebSocket
β
βΌ
STOMP Endpoint
β
βΌ
Message Broker
β
βΌ
Topic
β
βΌ
Subscribed Clients
Supported capabilities:
- Live Chat
- Notifications
- Team Messaging
- Project Discussions
Supports SMTP integration for:
- Welcome Emails
- Password Reset
- Interview Invitations
- Leave Notifications
- System Alerts
The application uses Supabase Storage.
Supported file types:
- Images
- PDFs
- Office Documents
- ZIP Files
Maximum upload size is configurable.
Designed for cloud-native deployment.
Current architecture supports:
- Multiple Organizations
- Multiple Databases
- Docker
- Dokploy
- Reverse Proxies
- HTTPS
- Cloud Storage
- Horizontal Frontend Scaling
This guide walks you through setting up the WorkNest backend for local development and production deployment.
Ensure the following software is installed before starting.
| Software | Version |
|---|---|
| Java | 21+ |
| Maven | 3.9+ |
| MySQL | 8.0+ |
| Git | Latest |
| Docker | Latest (optional) |
| Docker Compose | Latest (optional) |
| IntelliJ IDEA | Recommended |
git clone https://github.com/YOUR_USERNAME/WorkNest-Service-Springboot.git
cd WorkNest-Service-SpringbootCreate a local environment file.
cp .env.example .envConfigure the values according to your environment.
Example:
#############################################
# APPLICATION
#############################################
SPRING_PROFILES_ACTIVE=dev
#############################################
# DATABASE
#############################################
MASTER_DB_HOST=localhost
MASTER_DB_PORT=3306
MASTER_DB_NAME=platform_master
MASTER_DB_USERNAME=root
MASTER_DB_PASSWORD=yourpassword
#############################################
# JWT
#############################################
JWT_SECRET=YOUR_BASE64_SECRET
JWT_ACCESS_EXPIRATION_MS=900000
JWT_REFRESH_EXPIRATION_MS=604800000
#############################################
# SUPABASE
#############################################
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
SUPABASE_BUCKET=worknest
#############################################
# EMAIL
#############################################
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=example@gmail.com
MAIL_PASSWORD=yourpassword
#############################################
# APPLICATION URLS
#############################################
PUBLIC_WEB_BASE_URL=http://localhost:5173
PASSWORD_RESET_LINK_BASE_URL=http://localhost:5173/reset-password
#############################################
# CORS
#############################################
ALLOWED_ORIGINS=http://localhost:5173
WS_ALLOWED_ORIGINS=http://localhost:5173Start MySQL.
Create the master database.
CREATE DATABASE platform_master;No tenant databases need to be created manually.
WorkNest automatically provisions new tenant databases during organization registration.
mvn cleanmvn compilemvn spring-boot:runExpected output:
Started Main
Backend API:
http://localhost:8080
Swagger (Development)
http://localhost:8080/swagger-ui/index.html
Actuator
http://localhost:8080/actuator/health
Open
File
Open Project
Select
WorkNest-Service-Springboot
Wait until Maven imports all dependencies.
Run
Main.java
or
Spring Boot Configuration
Install extensions
- Java Extension Pack
- Spring Boot Extension Pack
- Maven for Java
Run
Main.java
or
mvn spring-boot:run
Build image
docker build -t worknest-backend .Run container
docker run \
-p 8080:8080 \
--env-file .env \
worknest-backendStart
docker compose up -dStop
docker compose downView logs
docker compose logs -fRestart
docker compose restartapplication.yml
application-dev.yml
application-prod.yml
.env.example
Dockerfile
docker-compose.yml
dev
Uses
- Local MySQL
- Local .env
- Development Logging
Run
mvn spring-boot:runprod
Uses
- Environment Variables
- External MySQL
- Optimized Logging
Run
SPRING_PROFILES_ACTIVE=prodmvn clean packageGenerated
target/
worknest-service.jar
Run
java -jar worknest-service.jar| Variable | Required |
|---|---|
| MASTER_DB_HOST | β |
| MASTER_DB_PORT | β |
| MASTER_DB_NAME | β |
| MASTER_DB_USERNAME | β |
| MASTER_DB_PASSWORD | β |
| JWT_SECRET | β |
| SUPABASE_URL | β |
| SUPABASE_SERVICE_ROLE_KEY | β |
| MAIL_HOST | β |
| MAIL_USERNAME | β |
| MAIL_PASSWORD | β |
Generate a secure Base64 secret.
Linux
openssl rand -base64 64PowerShell
[Convert]::ToBase64String((1..64 | ForEach-Object {Get-Random -Maximum 256}))Liveness
GET
/actuator/health/liveness
Readiness
GET
/actuator/health/readiness
General Health
GET
/actuator/health
Swagger UI
/swagger-ui/index.html
OpenAPI
/v3/api-docs
When bootstrap is enabled
Email
admin@worknest.com
Password
Configured through environment variables
Disable bootstrap after the first deployment.
When a new company registers:
Company Registration
β
Validate Request
β
Create Platform Record
β
Create MySQL Database
β
Create Tables
β
Seed Initial Data
β
Create Administrator
β
Ready
No manual SQL scripts are required for tenant creation.
Open
http://localhost:8080/actuator/health
Expected response
{
"status": "UP"
}Run all tests
mvn testRun integration tests
mvn verifyClone Repository
β
Configure .env
β
Create platform_master
β
mvn clean
β
mvn compile
β
mvn spring-boot:run
β
Develop
β
Test
β
Commit
β
Push
β
Deploy