Giter Club home page Giter Club logo

parttimescheduler's Introduction

Part Time Work Scheduler

This is a requirement for NCSU's CSC510 Software Engineering Course project 1 for Group 10.

DOI GitHub GitHub pull requests GitHub code size in bytes GitHub commit activity GitHub contributors GitHub issues GitHub closed issues GitHub top language GitHub forks Node.js CI GitHub Workflow Status (event)

Goal

Implementing a part time work scheduler for university students to efficiently manage their work at the campus employer.


Motivation

There are a lot of students that manage multiple on campus jobs at the same time. Creating a unified interface that helps manage all of them would prove to be a life saver for them. Currently the employer chooses their own platform and the student has to manage all those different applications at once.

parttimeScheduler.mp4

Features

Users

  • Students

    These are university students who work in shifts at employers on the campus in their free time to supplementt the payment towards their tuition.

    Their responsibilities include-

    • They have a relatively fixed schedule alloted to them by their supervisorsaccording to their own personal schedule.
    • They are supposed to be present at their shift timings. Some infractions are allowed before they are fired for causing understaffing at the store.
    • They need to let their supervisor and other peers know if they will be unable to take up their alloted shift.
    • Some others can volunterily take up such shifts to earn more in their free time.

  • Supervisors

    These are the permanent employees at the campus employer who manage the students working there.

    Their resposibilities include -

    • Hiring and onborading new student employees and giving them access to their shift management system.
    • They also have to fix a schedule for each student keeping in mind the staff strength required at the store.
    • They need to verify the attendance records for all the students attending their shifts.
    • They need to approve each request of a student dropping their shifts
    • They are resposible to keep track of the infraction points for students when they miss their shift.

Components

The components for the system are-

  • Frontend- It is made using Node.js , Typescript and React-Bootstrap.

  • Backend- This uses Express.js and MongoDb to maintain the data for implementing this project.

Functionality

The things the project intends to deliver-

For Students -

  • Give an interactive Homepage to view numerous things like-
    • Their upcoming shifts
    • Statistics related to shifts in the current week like hours completed, scheduled etc.
    • To have a quick look at the status of requests made for shift change or drop
    • Links to all pages from the navigation bar.
  • To show the students schedule in detail with a single view showing shifts at multiple workplaces.
  • It also shows a view which shows the schedule for the current week for all the students working at the given selected workplace. Eg. Schedule of all the students working at Starbucks in the given week.
  • Then come the tradeplace where one can select froma list of his/her own shifts and offer them to other people.
  • There is also an option for you to takeup someone else's shift that has been offered.
  • If your offered shift is takenup by someone else then it will be removed from your schedule and added to their schedule.

For Supervisors -

  • They have the ability to onboard the students working at their store. They have the ability to generate a default password for the Student account.
  • They will have to fix a weekly schedule for all student employees based on the staff requirements and taking into consideration the students study schedule.
  • They will have the authority to fire and remove any student from the system for not reporting on shifts and any other reasons as deemed necessary.
  • They will have to approve each offer request raised by the students where they don't want to attend the shift.
  • They wil have access to more advanced statistics for each of the students working at theie store.
  • They will have to manually or electronically verify the in and out time punched in by the student. -Basically they have superior admin right to this system.

Getting Started

Installation

  • Install Node.js from here and finish the required setup in the executable file.
  • Install a global React-app for the project using-
    $ npm install -g create-react-app
  • Install Express.js for backend using-
    $ npm install express --save
  • Install MongoDb(mongoose)using-
    $ npm install mongoose --save
  • Install dotenv using-
    $ npm install dotenv --save
  • Install cors express middleware for backend using-
    $ npm install cors --save
  • Create working directory named PartTimeScheduler and go inside it
    $ mkdir PartTimeScheduler
    $ cd PartTimeScheduler
  • Clone this repository from here or use the following in GitBash
    $ git clone https://github.com/boscosylvester-john/parttimeScheduler
  • Install all the requirements lsted in package.json using
    $ npm install
  • Run the app using
    $ npm start

Running Tests

  • Test all the test files in the project directory using

    $ node server.js
    $ npm test
  • Generate the coverage reports

Coverage Reports

File Statements Lines
middleware
29.54% 13/44 29.54% 13/44
models
71.42% 5/7 71.42% 5/7
routes
30.95% 13/42 30.95% 13/42

License

GitHub

License Guidelines


Contribute

Please have a look at the guidelines before contributing.


Authors


Technical Stack

React

NodeJS

MongoDB

TypeScript

Express.js

ESLint


parttimescheduler's People

Contributors

shlokio avatar boscosylvester-john avatar kamathprasad9 avatar tusharkini avatar ankurbanerji3 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.