Skip to content

cathlauretta/RORO-Control-System

Repository files navigation

Room Repair and Occupancy Control System

IF3152 Rekayasa Perangkat Lunak STI

Table of Contents

Program Description

    Once upon a time, Mr. Gagas, as a hotel owner, feels deeply overwhelmed by the amount of complaints he received from his customers. Most were arguing about the damages that each room has suffered, up to the fact that not just one, but more than one discovered that the room they're getting assigned to is actually on a very bad state and/or not used for such a long time.
    Looking at this, Mr. Gagas has assembled our team of members Aldy, Cathleen, Ferdinand and Hans to come up with a solution to fix this. He feels that the longer this problem gets fixed, the more loss he's going to acquire instead of profit.
    After careful considerations and plannings, we finally came with the concept of Room Repair and Occupancy Control System, or abbreviated as RORO Control System. RORO Control System is a web-based software used to manage room and hotel facilities repairment. Three important aspects that are being covered in this software are:
  • Room → Contains all the informations about rooms, including the type, price, and the availability.
  • Report → Contains all the informations essential to report created when handling a room that needs repair.
  • Employee → Containts all the informations needed regarding a staff (including admin), such as hired date, address, and full name.
        Hopes are high that this system will be able to fix Mr. Gagas' problems and hopefully bring more profit for his hotel ~

    Requirements

    How to Run the Program

    1. Clone this repository

      git clone https://gitlab.informatika.org/agent-47/if3152-2023-k01-07-roro-control-system.git
    2. Change the directory to the cloned repository

      cd if3152-2023-k01-07-roro-control-system
    3. Install the required package

      npm install
      
    4. Run the program

      npm run dev
      
    5. Open the program in a new browser tab or you can access the program on localhost:3000

    Database Schema

         For our database schema, we used three tables, namely, Room, Report, and Employee. As you can probably see, they all have different informations to store, and what probably connects them is the fact that Room and Report are linked by room_repaired, room_name attribute, while Report and Employee are linked by eic, name .

    Use Case Implementation

    Use Case Description
    Use Case 1 Log In
    Use Case 2 View Room List
    Use Case 3 Add New Room
    Use Case 4 Change Room Data
    Use Case 5 View Report List
    Use Case 6 Add New Report
    Use Case 7 Mark a Room for Repair
    Use Case 8 Remove Repair Mark
    Use Case 9 View Employee List
    Use Case 10 Add New Employee
    Use Case 11 Change Employee Data
    18221045 18221157 18221169 18221171
    Ivan Aldy Ganesen Cathleen Lauretta Ferdinand Refrandt Hans Stephano Edbert N
    UC 1
    UC 2
    UC 3
    UC 4
    UC 5
    UC 6
    UC 7
    UC 8
    UC 9
    UC 10
    UC 11

    Captured Screens

    Below are the interface of RORO Control System

    1. Login Page
    1. Admin - Room List : There are "Add Room" button if the user is admin
    1. Admin - Report List
    1. Admin - Employee List : Employee List can only be accessed by Admin
    1. Admin - Add Room : Only Admin can add new room to the database
    1. Admin - Add Employee : Only Admin can add new employee to the database
    1. Admin - Edit Room : Only Admin can edit existed room
    1. Add Report : Report cannot be edit by employee or admin

    Project Structure

    .
    ├─ __test__                     # Contains unit and/or component testing(s)
    ├─ doc                          # Contains database schema, testing results, and screenshots of application
        └─ screenshots
    ├─ prisma                       # Contains prisma library to CRUD database
    ├─ public                       # Contains icon used in the application
        └─ icons
    └─ src                          # Contains source code of the application
        ├─ app                      # Consists of the routings used in the app and pages
            ├─ api
            ├─ employee     
            ├─ login
            ├─ profile
            ├─ report
            └─ room
        ├─ components               # Consists of reusable components in the program
        ├─ pages                    # Consists of API interface(s)
            └─ api
        └─ types                    # Consists of interfaces needed to fulfill one aspect of the authentication provided by Next.js
    

    Testing Results

         We did some testing for the InputField component and the Room's FrontEnd page, and everything is a success. However, there's a slight issue when testing for Report and Employee is conducted because it can't seem to detect "msw/node" .

    Authors

    Student ID Name
    18221045 Ivan Aldy Ganesen
    18221157 Cathleen Lauretta
    18221169 Ferdinand Refrandt
    18221171 Hans Stephano Edbert N

    © Agent 47