A Modern Employee Attendance Management System
If the app doesn't log in immediately, please wait a few minutes - the backend services are hosted on Render and may take time to spin up.
Want to explore the app? Use these credentials:
Field
Value
Email
admin@attendease.com
Password
Admin@123
Click Register on the login page to create your own employee account and experience the employee-side features.
AttendEase is a full-stack HR Management System designed with role-based architecture at its core. The platform provides two distinct user experiences within a single application:
Portal
Users
Capabilities
Admin Portal
HR Managers, Administrators
Full workforce management, attendance tracking, leave approvals, department control
Employee Portal
Regular Employees
Personal check-in/out, leave requests, attendance history
This separation ensures enterprise-grade security, clean architecture, and scalable design.
Feature
Description
Dashboard
Real-time analytics with attendance trends, distribution charts, and workforce statistics
Employee Management
Complete CRUD operations, department assignment, user linking, status tracking
Attendance Control
Daily overview, manual check-in/out, status overrides, working hours calculation
Leave Management
Approve/reject requests with comments, filter by status and type
Department Management
Create, edit, delete departments with employee count tracking
Feature
Description
Dashboard
Personal attendance stats, recent activity history
Check-In/Out
One-click attendance marking with real-time status display
Leave Requests
Submit requests, select leave type, track approval status
All screenshots available at frontend/public/screenshots/
Technology
Purpose
React 18
UI library
Vite
Build tool & dev server
React Router
Client-side routing
Axios
HTTP client
Lucide React
Icon library
Context API
State management
Technology
Purpose
FastAPI
Python web framework
SQLAlchemy
ORM
PostgreSQL
Production database
SQLite
Development database
JWT
Authentication
Bcrypt
Password hashing
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FRONTEND (React + Vite) β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
β β Public β β Protected β β Admin Routes β β
β β Routes β β Routes β β (Role-based Access) β β
β β βββββββββββ β β βββββββββββ β β βββββββββββββββββββββββ β β
β β β’ Login β β β’ Dashboard β β β’ Employees β β
β β β’ Register β β β’ Check-In β β β’ Attendance β β
β β β’ Password β β β’ Leaves β β β’ Departments β β
β β Reset β β β β β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β HTTP/REST API
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BACKEND (FastAPI) β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
β β Controllers β β Services β β Repositories β β
β β βββββββββββ β β βββββββββββ β β βββββββββββββββββββββββ β β
β β β’ Auth β β β’ Auth β β β’ User β β
β β β’ Employee β β β’ Employee β β β’ Employee β β
β β β’ Attendanceβ β β’ Attendanceβ β β’ Department β β
β β β’ Leave β β β’ Leave β β β β
β β β’ Departmentβ β β’ Departmentβ β β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β SQLAlchemy ORM
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β DATABASE β
β PostgreSQL (Production) / SQLite (Development) β
β βββββββββββββ βββββββββββββ βββββββββββββ βββββββββββββββββββ β
β β Users β β Employees β βAttendance β β Leave Requests β β
β βββββββββββββ βββββββββββββ βββββββββββββ βββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Python 3.11+
Node.js 18+
Git
# Clone the repository
git clone https://github.com/abhayror17/ATTENDEASE.git
cd ATTENDEASE
# Navigate to backend
cd backend
# Create virtual environment
python -m venv venv
venv\S cripts\a ctivate # Windows
# source venv/bin/activate # Linux/Mac
# Install dependencies
pip install -r requirements.txt
# Copy environment file
copy .env.example .env
# Initialize database with seed data
python -m app.scripts.db_init seed
# Create superuser
python -m app.scripts.db_init superuser --email admin@example.com --username admin --password Admin@123
# Run server
uvicorn app.main:app --reload --port 8000
# Navigate to frontend
cd ../frontend
# Install dependencies
npm install
# Copy environment file
copy .env.example .env
# Run development server
npm run dev
Variable
Required
Description
SECRET_KEY
Yes
JWT secret key
DATABASE_URL
Yes
Database connection string
FRONTEND_URL
Yes
Frontend URL for CORS
DEBUG
No
Enable debug mode
SUPERADMIN_EMAIL
No
Admin email
SUPERADMIN_USERNAME
No
Admin username
SUPERADMIN_PASSWORD
No
Admin password
TIMEZONE
No
Default timezone
Variable
Required
Description
VITE_API_URL
Yes
Backend API URL (e.g., http://localhost:8000/api)
Method
Endpoint
Description
POST
/api/auth/login
User login
POST
/api/auth/register
User registration
POST
/api/auth/logout
User logout
GET
/api/auth/profile
Get current user
Method
Endpoint
Description
GET
/api/employees
List all employees
GET
/api/employees/{id}
Get employee details
POST
/api/employees
Create employee (Admin)
PUT
/api/employees/{id}
Update employee (Admin)
DELETE
/api/employees/{id}
Delete employee (Admin)
Method
Endpoint
Description
GET
/api/attendance/today
Today's attendance
POST
/api/attendance/check-in
Check in
POST
/api/attendance/check-out
Check out
GET
/api/attendance/stats
Attendance statistics
Method
Endpoint
Description
GET
/api/leave-requests
List leave requests
POST
/api/leave-requests
Create leave request
POST
/api/leave-requests/{id}/approve
Approve request (Admin)
POST
/api/leave-requests/{id}/reject
Reject request (Admin)
Full API documentation: /api/docs (Swagger UI)
Create a PostgreSQL database on Render
Create a Web Service pointing to your GitHub repo
Set root directory to backend
Configure build command: chmod +x build.sh && ./build.sh
Configure start command: uvicorn app.main:app --host 0.0.0.0 --port $PORT
Add environment variables (see Environment Variables section)
Import your GitHub repository
Set root directory to frontend
Set VITE_API_URL environment variable
Deploy
Role-Based Access Control
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ACCESS CONTROL MATRIX β
βββββββββββββββββββ¬βββββββββββββββ¬βββββββββββββββββββββββββββββ€
β Resource β Employee β Admin β
βββββββββββββββββββΌβββββββββββββββΌβββββββββββββββββββββββββββββ€
β Dashboard β Own Stats β Full Analytics β
β Check-In/Out β Self Only β All Employees β
β Leave Requests β Create/View β Approve/Reject β
β Employees β View β Full CRUD β
β Attendance β View Own β Manage All β
β Departments β View β Full CRUD β
βββββββββββββββββββ΄βββββββββββββββ΄βββββββββββββββββββββββββββββ
The UI features a modern dark theme with distinctive green accents:
Element
Value
Background
#000000
Surface
#0a0a0a
Primary
#00ff00
Text
#ffffff
Border
#1f1f1f
Design principles:
Dark mode for reduced eye strain
Cyberpunk/terminal aesthetic
Glassmorphism effects
Smooth animations
Responsive layout
ATTENDEASE/
βββ backend/
β βββ app/
β β βββ controllers/ # HTTP endpoints
β β βββ services/ # Business logic
β β βββ repositories/ # Data access
β β βββ models.py # SQLAlchemy models
β β βββ schemas.py # Pydantic schemas
β β βββ main.py # FastAPI app
β βββ requirements.txt
β βββ build.sh
β
βββ frontend/
β βββ src/
β β βββ pages/ # React components
β β βββ components/ # Shared components
β β βββ context/ # Auth context
β β βββ api/ # API client
β β βββ index.css # Design system
β βββ package.json
β
βββ README.md
Fork the repository
Create a feature branch (git checkout -b feature/amazing-feature)
Commit your changes (git commit -m 'Add amazing feature')
Push to the branch (git push origin feature/amazing-feature)
Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.