/Digitize

This is a MERN website developed for a company called Digitize to manage the work of their employees.

Primary LanguageJavaScriptMIT LicenseMIT

Digitize

alt text


Table of Contents


Built With :


Getting Started

This is a list of needed instructions to set up your project locally, to get a local copy up and running follow these instructions.

  1. Clone the repository.

  2. cd into backend folder and create a file named "config.env" and fill it with this fields with your information.


    NODE_ENV=development
    PORT=[PORT YOU WANT]
    DATABASE=[CONNECTION STRING OF YOUR DATABASE]
    USER=[DATABASE USER NAME]
    DATABASE_PASSWORD=[YOUR DATABASE PASSWORD]
    JWT_SECRET=[YOUR JWT SECRET STRING]
    JWT_EXPIRES_IN=[DATE example: 1d "for one day"]
    JWT_COOKIE_EXPIRES_IN=[Date example: 1 "for one day"]
    FILEPATH=https://sites.digitize.org/api # For returning photos in rows data
    EMAIL_USERNAME=[EMAIL USERNAME TO SEND MAILS]
    EMAIL_PASSWORD=[YOUR EMAIL APP PASSWORD]
    EMAIL_FROM=[EMAIL USERNAME TO SEND MAILS]

  3. Follow this article to install node js and npm Install Node js and npm

  4. cd backend && npm i && npm start

  5. cd .. && cd frontend && npm i && npm start


Description

This project was made for Digitize company.

Website is in Arabic Language.

It is a website that has 2 kinds  of users:

  1. Supervisor,
  2. Website Admin.
Each user has different pages to view.
First: Supervisor:
  1. First, he logs in with his email and password that the website admin gave it to him.
  2. He can go to the default URL of the  website to submit a survey in which he enters the data in multi steps sequence.
  3.    Required  data:  
    1. Choose a Project Code.
    2. Choose a Site Name from list of site names of this project.
    3. Manually enter a Capinet Serial.
    4. Choose an Activity Group Name. 
    5. Day Progress & select many squares from project map to mark  them as complete or attach a photo.
    6. Choose a Delivery Way.
    7. Choose a Delivery Team Name.
    8. Choose a Site Engineer.
    9. Choose a Site Supervisor (Main).
    10. Choose a Site Supervisor  (Assistant).

Second: Website  Admin:

  1. First, he logs in with his email and password, and will be authorized as an admin, so he can see a different page.
  2. He can ask for data, he can  export and download all data that the supervisors added  as an  excel file,  or select a certain project to just  export the data of this project.
  3. He can have another tab to create a supervisor account, he enters a new  name, email, and password for the new supervisor, then submits and gives  these information to the supervisor.
  4. He have another tabs for:
    1. Create/ Delete project/s.
    2. Create/ Delete site name/s of a certain project.
    3. Create/ Delete activity group/s.
    4. Create/ Delete activity type/s.
    5. Create/ Delete site engineer/s.
    6. Create/ Delete site supervisor (main).
    7. Create/ Delete site supervisor (assistant).
    8. Create/ Delete delivery way/s.
    9. Create/ Delete delivery team/s.
    10. Upload a project map.


Documentation

You can look on the API documentation at API Documentation


Screenshots


Contributors

Frontend & DevOps

Yousef Khaled
Yousef Khaled

Backend

Moaz Mohammed
Moaz Mohammed