You are on page 1of 6

MODULE SERVER

CONTENTS
This module has the following files:

 MODULE_SERVER.doc
 MODULE_SERVER_MEDIA.zip

INTRODUCTION
Cinema XIX ask you to make a minimum viable product for movie scheduling on its branches. Your task is to
implement the backend with Laravel PHP Framework and frontend. The detail description and tools that you
can use will be described below.

DESCRIPTION OF PROJECT AND TASKS


Use provided ERD to make your database. Create dummy users on users table (password is hashed using
bcrypt):
username password role
admin1 admin1 admin
admin2 admin2 admin
user1 user1 user

These are the list of web service endpoint that requested by the company:
1. Authentication
a. Login
b. Logout

2. Branch
a. Create new branch
Description: For client to create new branch, name must be filled.
b. Update branch
Description: For client to update existing branch by id, name must be filled.
c. Delete branch
Description: For client to delete existing branch by id
d. Get all branches
Description: For client to get all branches data

3. Studio
a. Create new studio
Description: For client to create new studio. All input must be filled. Branch id must be
registered in branch table. Basic price must be 1 – 10.000.000, Additional prices must be 0 –
1.000.000.
Field:
 Name
 Branch id
 Basic price
 Additional Friday price
 Additional Saturday price
 Additional Sunday price

b. Update studio
Description: For client to update existing studio by id. All input must be filled. Branch id must
be registered in branch table. Basic price must be 1 – 10.000.000, Additional prices must be
0 – 1.000.000.
Field:
 Name
 Branch id
 Basic price
 Additional Friday price
 Additional Saturday price
 Additional Sunday price

c. Delete studio
Description: For client to delete existing studio by id

d. Get all studios


Description: For client to get all studios data

4. Movie
a. Create new movie
Description: For client to create new movie. All input must be filled. Movie length must be 1 –
999.
Field:
 Name
 Minute length
 Picture (file)

b. Update movie
Description: For client to update existing movie by id. All input must be filled. Movie length
must be 1 – 999.
Field:
 Name
 Minute length
 Picture (file)

c. Delete movie
Description: For client to delete existing movie by id
d. Get all movies
Description: For client to get all movies data

5. Schedule
a. Create new schedule
Description: For client to create new schedule. All input must be filled. Studio and movie id
must be existing in corresponding tables.

End time is calculated by adding movie’s minute length to schedule’s start time (end_time =
start_time + minute_length)
Price is calculated by adding current day additional price to studio’s basic price, example: on
Friday, price = basic_price + additional_friday_price. On Wednesday, price = basic_price
Field:
 Studio id
 Movie id
 Start date time

b. Update schedule
Description: For client to update existing schedule by id, validation requirement is equal with
create schedule endpoint.

c. Delete schedule
Description: For client to delete existing schedule by id

d. Get all schedules


Description: For client to get all schedules data

e. View schedules by user


Description: For client to get all schedules data
The complete Cinema XIX system should cover the following requirement:

Menu Detail
 The system’s role can be an Admin or a User
 The user (admin or user) can login (and logout) into the system on the start
page of the application
 After login, admin have access to “branch”, “studio”, “movie”, and “schedule”
menu
 After login, user can view all schedule
Login
 Links to the authorized menu and logout link are always visible on the top part
of the page while the user is logged in
 Make sure your system is preventing users to access unauthorized menu

Note: the system is not providing register menu, all user data registration is
managed by administrator on the database directly
 On “branch” menu, admin can add new branch
Branch  Admin can update and delete existing branch
 All input form is must be filled
 On “studio” menu, admin can add new studio
 Admin can update and delete existing studio
Studio  All input form is must be filled, selected branch must be registered in branch
table, basic price must be 1 – 10.000.000, additional prices (Friday, Saturday,
Sunday) must be 0 – 1.000.000
 On “movie” menu, admin can add new movie
Movie  Admin can update and delete existing movie
 All input form is must be filled, movie length must be 1 – 999
 On “movie” menu, admin can add new movie
 Admin can update and delete existing movie
 All input form is must be filled, selected studio must be registered in studio
table, selected movie must be registered in movie table
 End time is calculated by adding movie’s minute length to schedule’s start time
Schedule
(end_time = start_time + minute_length)
 Price is calculated by adding current day additional price to studio’s basic price,
example: on Friday, price = basic_price + additional_friday_price. On
Wednesday, price = basic_price

 The user role can view all schedules, search by branch and date
 The information is grouped by movie name and price. Studio name and
end time are not shown. If there are multiple start time with same
movie name and price, the start time are shown in one row.
Example:
View Schedule
ERD
You can use and improve ERD below:
INSTRUCTIONS TO THE COMPETITOR
 Save your files in your root directory on the server called "XX_SERVER_MODULE"
where XX is your computer number.
 Create/generate a DB-diagram named “db-diagram.xxx” (xxx is the extension/type of the file eg. pdf
or jpg) and put it into the directory mentioned above. Example:

 For this module, you must use one of the three available frameworks provided. Applications
developed without use of any of these frameworks will not be considered. You should take
advantage of the framework as much as possible.
 Assessment will be done on the files and data in your database “XX_SERVER" on the central server.