- Introduction & Summary
- Project Images
- Technical Aspects
- Tools & Technologies Used
- Installation & Setup Guide
- API Documentation
The Full-Stack TimeSheet Management System is designed to streamline the process of tracking and managing employee timesheets. It offers a comprehensive solution for project managers, HR administrators, and employees to efficiently manage time entries, approvals, and reporting.
- User Management: Role-based access for Admins, Managers, and Employees.
- Timesheet Entries: Easy-to-use interface for logging work hours.
- Approval Workflow: Automated approval process for timesheets.
- Reporting: Detailed reports for project and employee time tracking.
- Notifications: Email notifications for timesheet submissions and approvals.
- Project Managers: Oversee project timelines and team contributions.
- HR Administrators: Manage employee timesheets and approvals.
- Employees: Log work hours and submit timesheets for approval.
The system follows a multi-tier architecture:
- Frontend: Built with JavaScript, HTML, CSS.
- Backend: Powered by .NET Core for robust and scalable server-side logic.
- Database: SQL Server for reliable data storage and management.
The database includes tables for users, roles, timesheets, projects, and notifications. Key relationships are established to ensure data integrity and efficient querying.
- User Authentication: Secure login and role-based access control.
- Timesheet Management: CRUD operations for timesheets.
- Approval Workflow: Multi-level approval process for timesheet submissions.
- Reporting: Generate and export detailed reports.
- User Login: Users log in based on their roles.
- Timesheet Entry: Employees log their work hours.
- Submission: Timesheets are submitted for approval.
- Approval: Managers review and approve/reject timesheets.
- Reporting: Admins generate reports for analysis.
- Frontend: HTML, CSS, JavaScript, Fomantic UI, Bootstrap
- Backend: .NET Core MVC , 3 tier Architecture
- Database: MS SQL Server, Stored Procedures, SQL functions, Views
- APIs: RESTful APIs
- Authentication: Microsoft Authentication
- DevOps: Azure Devops
- Reports: WebDataRocks
- .NET Core SDK
- Node.js
- SQL Server
Clone the Repository
git clone https://github.com/sonishivam1402/Timesheet_Management_System.git
- GET
/api/timesheet
- Retrieve timesheet data for the logged-in user. - GET
/api/timesheet/{timesheetID}
- Retrieve timesheet lines by TimesheetID.
- POST
/api/timesheet/save
- Add or update a timesheet entry. - DELETE
/api/timesheet/{lineID}
- Delete a specific timesheet line.
- POST
/api/timesheet/Submit
- Submit a timesheet for approval. - POST
/api/timesheet/Approve
- Approve a submitted timesheet. - POST
/api/timesheet/Reject
- Reject a submitted timesheet.
- GET
/api/timesheet/GetPendingTimesheets
- Retrieve pending timesheets for approval. - GET
/api/timesheet/approved
- Retrieve approved timesheets. - GET
/api/timesheet/previous
- Retrieve previous timesheets.
- GET
/api/timesheet/ddr
- Retrieve dropdown data for adding a new timesheet.
- GET
/api/timesheet/gettimesheetcomments?timesheetId={timesheetId}
- Retrieve comments for a timesheet (Manager view). - GET
/api/timesheet/getvptimesheetcomments?timesheetId={timesheetId}
- Retrieve comments for a timesheet (Employee view).
- GET
/api/timesheet/sendemail
- Trigger email notification for approval. - POST
/api/timesheet/sendemail
- Manually trigger email notifications. - POST
/api/timesheet/TriggerEmail
- Send approval emails.
- GET
/api/timesheet/Test
- Test email sending functionality.
POST /api/Engagement/Save
- Saves a new engagement.
GET /api/Engagement
- Retrieves all engagements.
GET /api/Engagement/owner
- Retrieves engagements owned by the current user.
GET /api/Engagement/GetEngagementsByUserAndDate/{date}
- Retrieves engagements for a specific user and date.
GET /api/Engagement/myengagements
- Retrieves engagements assigned to the logged-in employee.
GET /api/Engagement/tasks
- Retrieves all tasks.
GET /api/Engagement/tasks/{id}
- Retrieves a specific task by its ID.
GET /api/Engagement/{id}
- Retrieves tasks associated with a specific engagement.
POST /api/Engagement/tasks
- Adds or updates a task.
DELETE /api/Engagement/tasks/{id}
- Soft deletes a task by ID.
DELETE /api/Engagement/DeleteEngagement/{engagementId}
- Deletes an engagement by ID.
Made with ❤️ by Shivam