Safana - Worker Mangement and Project Management System
| A system which helps to manage all the tasks for an employee and Supervisor in the company. |
Features
- Add new employee
- Add Employee to the projects (Frontend only)
- Assign tasks to the employees (Frontend only)
- Project analysis and statistics (Frontend only)
- Tracking the project work such as completion percent, total work, etc (Frontend only)
- Create new projects and add employees by the supervisor
- Allocate allowances to the workers (Frontend only)
- Worker Laws
- Workers able to request for the leave application (Frontend only)
- Allow or Reject leave application submitted by users (Frontend only)
- Worker can see the holidays, working days and the tasks by selecting date from calendar (Frontend only)
- "Current project" menu in worker dashboard has a custom icon which changes color based on the status of project i.e. green - on time, orange - behind, red - over due (Frontend only)
Get DEMO APK HERE
Note that the DEMO APK doesn't work because we weren't able to sustain a firebase environment for this long. If you want to see the app in action, please build the database in firebase, clone this repo, change the database info in the app, and then launch it. A screenshot of a part of the database is given below but we couldn't find a complete database structure. So you'd probably have to make it based on the app code (look a how the requests are being handled). Thank you for understanding.
HOW to set up the firebase cloud storage so that you can login as a supervisor:
Follow this issue to set up the database
User Manual
Employee/Worker
|
Splash The splash screen of the application
|
Login Asks for user id (eg. SUP001 or EMP1523 )
|
Login Asks for password ( if profile complete )
|
Sign up Else user is asked to fill additional details
|
|
Edit Profile User is asked to complete his profile after sign up
|
Navigation View Shows different things the user can do
|
User Profile User can see his /her user info
|
Tasks User can view tasks related to the project
|
|
Sort Tasks User can sort and filter tasks
|
New Task User can create new task related to the project
|
Calendar View tasks based on dates and priorities
|
Search Users can search about colleagues in this section
|
|
Leave User can apply for a leave in this section
|
Allowances User can view his / her allowances
|
Worker Laws Users can see the worker laws of the company
|
Current Project User can see the status of the current project
|
Supervisor
|
Supervisor Dashboard Shows different things the supervisor can do
|
Worker Details List of employees under him / her
|
Worker Details Sort Asks for password ( if profile complete )
|
Create new employee ids Supervisor can create emp ids
|
|
Project Details Supervisor can see the project details
|
New Project Supervisor can add a new project
|
Select Employees then supervisor can add employees to the projects
|
Calender Supervisor can see tasks based on date and priority
|
|
Leave Management Supervisor can review leave requests
|
Leave Management Sort Sort leave requests based on various things
|
Leave Management Supervisor can swipe to accept leave request
|
Leave Management Supervisor can reject / accept / go to calender
|
|
Allowance Grant Supervisor can grant allowances to employees
|
Create Allowance Supervisor can create new allowances
|
Tasks Supervisor can see all the tasks related to the project
|
Sort Tasks User can sort and filter tasks
|
and much more...
Technology Stack
- Java (Android)
- Firebase (firestore database)
Sample Firebase Data
Collaborate with us!
Want to contribute? Great!
To fix a bug or enhance an existing module, follow these steps:
- Fork the repo
- Create a new branch (
git checkout -b improve-feature) - Make the appropriate changes in the files
- Add changes to reflect the changes made
- Commit your changes (
git commit -am 'Improve feature') - Push to the branch (
git push origin improve-feature) - Create a Pull Request
Bug / Feature Request
If you find a bug (the application couldn't handle the query and / or gave undesired results), kindly open an issue here.
If you'd like to request a new function, feel free to do so by opening an issue here.