Skip to content

ashawe/Safana

Repository files navigation

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

We lost the orginal screenshots however, some good soul captured a snapshot of our repo back in 2020 and that's where you can find all the screenshots.

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.

Libraries Used