Firman Jamal

SGR 2

FULL STACK

NEXTJS

NESTJS

COMPLETED

Description

SGR is another name for Stagmont Guardroom. It was initially intended to aid in the creation of duty schedules and the efficient allocation of workload among duty personnel. SGR also assists in the management of leaves/off/medical appointments/mc and has filtered out their user profile from the schedule list so that schedulers do not have to worry about scheduling those who are on leave on days when they should not be at work.

SGR uses telegram as a form of notification to notify personnel of their work schedule for the following day. The telegram bot @stagmont_bot will manage three distinct groups.

  1. Appointment

  2. Planning

  3. Schedule

The bot will send parade state (manpower list) and a request notification of a leave/off and other types of appointments to the appointment group, to which the guard commander (SGT) must respond by selecting Approved or Reject.

If the scheduler decides to share the drafted schedule with other planners to verify one last time before sending to the official schedule group, the bot will send it to planning group. The planners in this group are capable of using three bot commands;

!send command sends the schedule to the official schedule group.

!schedule command schedule a send message of the schedule to the official schedule group at 10pm.

!cancel command cancels out the !schedule command.

In schedule group, the bot will send the finalize schedule that was created by the scheduler.

SGR 2 is an improved user friendly version of SGR 1.

Changes:

  • Design improvement (Dark Theme)

  • Improve the privacy of the user's data.

  • Software as a Service (SaaS)

  • Able to keep track of different camp performance such as the numbers of MCs every month.

  • Able ensure that the workload in the schedule is delegated evenly.

  • Able to keep track of the member's workload and the total hours.

  • Added schedule changelog to keep track any changes to the schedule.

  • Able to change the schedule configurations such as the time, laundry and consecutive check settings.

  • Added name roulette to randomize the selection of members in order to ensure fairness for every schedule.

  • Able to update schedule across different devices at the same time.

  • Able to invite new members via email to register themselves into the platform.

  • Appointments notifications will be receive via email regardless of approval or rejection.

  • Appointment date range determines as a full day or half day depends on whether the time range occurs within a single/multiple days, or is less than 12 hours in duration.

Project Stack

  1. NEXTJS
  2. NEXTAUTH
  3. REACT BOOTSTRAP
  4. BOOTSTRAP 5
  5. SOCKET.IO CLIENT
  6. FORMIK
  7. SASS
  8. NESTJS
  9. POSTGRESQL
  10. TYPEORM
  11. TELEGRAM API
  12. GOOGLE API
  13. CRON
  14. JWT
  15. SOCKET.IO SERVER
  16. REDIS
  17. PASSPORTJS