IWS Spring 2025 - Final Project Requirement
IWS Spring 2025 - Final Project Requirement
1. Overview
For the final project, you have to create web services and the client
application/website consuming the created services using RESTful API. The
content of your web services and client application/website are not mandatory,
you can create for any purpose you want (some suggestions are news website,
personal blog, ecommerce, education…). However, illegal contents (betting,
porn, drug, weapon…) are not allowed.
In details, you have to create 2 things:
a) Create the web services.
Web services provide functions to interact with information in your database.
b) Create a client application that consumes the web services created in the
previous part.
Client can be web application or mobile application. Windows form
application is also accepted but web application or mobile application are
better choices for the purpose of this project.
2. Requirements
a) Function
- For the API, your services must provide functions to show information from
the database (in another word, using GET method) and upload new information
to the database (in another word, using POST method), update information
(PUT method) and delete (DELETE method).
- For the client application, it must consume successfully all services you have
created. The returned information must be displayed correctly and users can
also submit new information to your database, update and delete them (for
example, if you create a news website, it should allow users to post their
comments).
b) Programming language
You can use any programming language (PHP, Java, JavaScript, Python…),
depends on your knowledge and the experience on working with the selected
language. For the database, SQL and NoSQL are both accepted.
Using libraries and frameworks of the programming languages is also
accepted.
c) Interface of client application
Your application/website should have user-friendly interface which make user
feel comfortable while using.
For teams who create website, it should be carefully responsive.
d) Team member
For IT student: 2 – 3 members/group
For MME student: 4 – 5 members/group
e) Submission date
11.59pm, April 27, 2025
f) Interview date
April 28, 2025 – 2 sessions: 1 for IT groups and 1 for MME groups
SUBMISSION FORMAT:
You need to put your source code along with personal report of all team members
inside a zip file with the file name as following format (wrong name and file
format will receive 0 point):
Example:
For further details, please read the Appendix A and B below. If you have any
question, please feel free to contact with your teacher during lecture/tutorial
classes or through Teams and email.
Follow the wrong architecture (for example: MVC, MVT, SOAP… = Fail)
Not submit project on time (-30% total mark for late submission)
Not attend interview session
Submit wrong file format (in this case is .zip file)
Copy code from other sources (will be checked with detection system)
For the PASS range:
a) Backend Requirement
For MME students’ projects, backend must provide basic services to
Get the information from database through GET method then
return the output in JSON/XML format and Receive input from user
then submit data and save to the database through POST method.
These function must work properly and return the correct output
format as expected output for each function/service. The testing work
must be done using Postman. For IT students’ projects, backend must
provide full create, read, update, delete functions.
In case your group decide to use serverless system or related
technologies such as Firebase, Realm, GraphQL…, remember that the
main purpose of this project is to create RESTful API so be really
careful when using it. It is accepted, but may be a problem if you
don’t understand and don’t meet the requirements.
For the database, it is acceptable to create it in your local machine or
use the cloud platform. However, it must be connected successfully to
your backend system. Fail to connect means fail the project. For the
database type, you can choose either SQL or NoSQL.
b) Frontend Requirement
About working process/consuming services performance: The
web/application can consume the backend services through API to
display information from database to the user, along with forms or
other types of getting input from user to collect and save to database
without any errors (for further detail, you also need to handle the
problem may happen with CORS policy). In another word, user can
interact with your backend system as well as the database to read and
write information by using your webpage/application which had been
linked through APIs you had created in the backend part.
About product interface: Your webpage/application must have user-
friendly interface - not having any problems with font type, font size,
color of text and background which may affect user experience. Every
picture/image, button and icon must be displayed without any error.
a) Backend Requirement
For MME students’ projects, in addition to two mandatory
functions/services described in the previous part; to get the mark in this
range, you need to design and implement services to handle the Update
database with information input/submitted from user through PUT/POST
method and Delete information saved in the database through DELETE
method.
Register – Login – Forgot password using/without using encryption will
be considered as additional requirement for MME student and mandatory
for IT student.
b) Frontend Requirement
Instead of just using natural HTML, CSS, JavaScript code (for
webpage), you are able to use additional libraries and frameworks (for
example: Bootstrap, TailwindCSS… or some frameworks/libraries for
frontend development: ReactJS, VueJS, Angular…). For mobile
application, instead of just using drag-and-drop Java
frameworks/libraries, you are able to use other programming
language/frameworks/library such as Flutter, React Native, Kotlin,
Swift…
For web product: Your webpage must be responsive and there is
no/small display error when testing responsive with different
devices/resolution. In case you separate your webpage into several
parts (for example: header, body, footer…), make sure they are
displayed correctly in order as implemented in the code files.
For mobile app: In case your application contains several child
widgets/parts, make sure they are displayed correctly in order as
implemented in the code files. Moreover, make sure that the
application still run smoothly when changing between screen and
scrolling up-down.