AttendanceHub is a comprehensive attendance management system designed to streamline the process of tracking employee attendance. Inspired by real-world challenges faced in a refinery setting, this system aims to solve common issues such as misplaced paper records, fraudulent check-ins, and inconsistent attendance tracking. By leveraging a digital platform, AttendanceHub ensures accurate and reliable attendance management, enhancing overall efficiency and accountability.
This project was inspired by my previous experience as a supervisor/time-keeper at a refinery, where I was responsible for managing employee attendance and coordination. Despite the positive aspects of the job, several challenges made the attendance system inconsistent and frustrating. These challenges included:
- Paper-based records: Attendance sheets were often misplaced or torn due to employee crowding.
- Fraudulent check-ins: Employees would check-in for absent colleagues or check-in without being present at their workstations.
- Simultaneous check-ins and check-outs: Some employees would exploit the crowded area to check-in and out simultaneously with different times.
To address these issues, AttendanceHub replaces paper records with a secure database, preventing the loss or damage of records. The system also includes features such as user authentication, role-based access control, and real-time attendance tracking to ensure accurate and reliable attendance management.
This project was developed using the Minimum Viable Product (MVP) approach. The current version includes core features to address the primary challenges faced in attendance management of the refinery. While the user interface (UI) may not be the best, it serves its purpose as an MVP. Based on user feedback, additional features and improvements will be added in future updates to enhance the overall user experience and functionality.
Login Details: For Admin rights(dashboard access) use
ID: 182870
password: johndoe
- User authentication and authorization
- Role-based access control
- Employee management
- Attendance tracking (check-in and check-out)
- Attendance filtering by date
- Password reset functionality
- Email notifications for onboarding and password reset
- Node.js
- Express.js
- MongoDB with Mongoose
- JWT for authentication
- bcrypt for password hashing
- nodemailer for sending emails
- React
- React Router
- Tailwind CSS
- Material Tailwind
- Axios for HTTP requests
- Node.js (version specified in
.nvmrc
) - MongoDB
- Clone the repository:
git clone https://github.com/Luwa-Tech/AttendanceHub.git
cd attendancehub
- Install dependencies:
yarn install
- Set up environment variables:
DB_URL=your_mongodb_connection_string
ACCESS_KEY=your_jwt_secret_key
USER_EMAIL=your_email_address
APP_PASS=your_email_app_password
CLIENT_URL=http://localhost:5173
PORT=your_backend_port
NODE_ENV=your_environment
- Seed database:
yarn backend:seed
- Start the backend server:
yarn backend
- Start the frontend development server:
yarn frontend
- To run both servers concurrently:
yarn start
POST /register
- Register a new employeePOST /login
- Login an employeePOST /logout
- Logout an employeePOST /generate-reset-token
- Generate a password reset tokenPOST /reset-password/:token
- Reset password using the token
GET /api/v1/employee/get-employee
- Get details of a specific employeeGET /api/v1/employee/get-all-employees
- Get details of all employees
GET /api/v1/attendance/check
- Get existing attendance record for the current dayGET /api/v1/attendance/current
- Get attendance records for the current dayGET /api/v1/attendance/filter-by-date
- Get attendance records filtered by datePOST /api/v1/attendance/check-in
- Check-in attendancePUT /api/v1/attendance/check-ou
t - Check-out attendance
This project is licensed under the MIT License. See the License file for details.