This is a requirement for NCSU's CSC510 Software Engineering Course project 1 for Group 10.
Implementing a part time work scheduler for university students to efficiently manage their work at the campus employer.
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
-
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.
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.
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.
- 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
-
Test all the test files in the project directory using
$ node server.js $ npm test
-
Generate the 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 |
Please have a look at the guidelines before contributing.
- Ankur Banerji Github
- Boscosylvester Chittilapilly Github
- Prasad Kamath Github
- Shlok Naik Github
- Tushar Kini Github