Build a web-based appointment booking application.
Budget: $30 – $250 USD
Build a web-based appointment booking application. The application shall comprise of a web
service following REST design principles, and of clients that interact with the web service. The
web service must be implemented in Java as a Spring Boot application. You are free to
implement the clients using whatever languages or frameworks you prefer. Your task is to build a web service for students booking appointments with career advisors at a
university. Appointments are available Monday to Friday starting at 9am and ending at 5pm. All
appoints are one hour in duration. Each career advisor specialises on providing advice to
students on specific degree programmes; a student must only book appointments with an
advisor that supports their degree programme. To manage demand, a student can only book one
appointment per week.
The appointment booking service’s main function is to let students book, view and cancel
appointments with career advisors. The service’s secondary function is to let career advisors view
their appointments and manage their own availability.
The service should store information about career advisors, booked appointments and available
appointment slots in suitable Java data structures, or in a data base. The information about
career advisors must include their name and their supported degree programmes.
Information about students is available from a student information system. This is a separate
web service that maintains an evolving data base of synthetic student records. The records
change over time as students graduate or drop out and new students enroll at the university;
students may also change their degree programme during the course of their studies. Details on
how to retrieve information about students from the information system will be published on
Canvas. You should use this student information system when testing your web service.
You may make the following simplifying assumptions when implementing the appointment
booking service:
• You may implement a service for a single career advisor who supports two degree
programmes, BSc Hons Computing Science and BSc Hons Software Engineering. You may
hard-code the information about the advisor into the service.
• You may restrict appointments to a three week period, starting Monday, 4th December
and ending Friday, 22nd December 2023.
• You may assume that all meetings take place in the future, regardless of the date, and can
therefore be cancelled.
Student view of the appointment booking service
The service must let students list available appointment slots, book a meeting with an advisor,
list meetings they have booked, or cancel a meeting.
In order to book a meeting, a student must identify themself by providing their student number,
name and degree programme. They must also provide a goal for the meeting (e.g. “improving my
CV”, “tips for my interview”, etc.) and select an available slot.
You may create a client as a user interface for students, implementing the request/response
interactions with the web service. (If no such client is built, you can use generic clients such as
curl or Postman for testing the web service.)
Career advisor view of the appointment booking service
The service must let career advisors list their own appointments for any given day. The
remainder of the advisor functionality is optional.
The service may let advisors manage their own availability by blocking and unblocking individual
appointment slots. A blocked slot is not available for students to book; only slots that have not
already been booked can be blocked. The service may also let advisors block and unblock
multiple slots (e.g. an entire day or a specific hour every day of the week) in one go.
In general, advisors cannot cancel students’ appointments. However, the application may check
appointments against the student information system in order to cancel appointments that can
no longer go ahead, e.g. because the student has left the university or changed their degree
programme.
Access to the service’s advisor functionality should be secured appropriately so that only
legitimately authenticated career advisors can access the functionality.
You may create a client as a user interface for career advisors, implementing the
request/response interactions with the web service, including authentication.
service following REST design principles, and of clients that interact with the web service. The
web service must be implemented in Java as a Spring Boot application. You are free to
implement the clients using whatever languages or frameworks you prefer. Your task is to build a web service for students booking appointments with career advisors at a
university. Appointments are available Monday to Friday starting at 9am and ending at 5pm. All
appoints are one hour in duration. Each career advisor specialises on providing advice to
students on specific degree programmes; a student must only book appointments with an
advisor that supports their degree programme. To manage demand, a student can only book one
appointment per week.
The appointment booking service’s main function is to let students book, view and cancel
appointments with career advisors. The service’s secondary function is to let career advisors view
their appointments and manage their own availability.
The service should store information about career advisors, booked appointments and available
appointment slots in suitable Java data structures, or in a data base. The information about
career advisors must include their name and their supported degree programmes.
Information about students is available from a student information system. This is a separate
web service that maintains an evolving data base of synthetic student records. The records
change over time as students graduate or drop out and new students enroll at the university;
students may also change their degree programme during the course of their studies. Details on
how to retrieve information about students from the information system will be published on
Canvas. You should use this student information system when testing your web service.
You may make the following simplifying assumptions when implementing the appointment
booking service:
• You may implement a service for a single career advisor who supports two degree
programmes, BSc Hons Computing Science and BSc Hons Software Engineering. You may
hard-code the information about the advisor into the service.
• You may restrict appointments to a three week period, starting Monday, 4th December
and ending Friday, 22nd December 2023.
• You may assume that all meetings take place in the future, regardless of the date, and can
therefore be cancelled.
Student view of the appointment booking service
The service must let students list available appointment slots, book a meeting with an advisor,
list meetings they have booked, or cancel a meeting.
In order to book a meeting, a student must identify themself by providing their student number,
name and degree programme. They must also provide a goal for the meeting (e.g. “improving my
CV”, “tips for my interview”, etc.) and select an available slot.
You may create a client as a user interface for students, implementing the request/response
interactions with the web service. (If no such client is built, you can use generic clients such as
curl or Postman for testing the web service.)
Career advisor view of the appointment booking service
The service must let career advisors list their own appointments for any given day. The
remainder of the advisor functionality is optional.
The service may let advisors manage their own availability by blocking and unblocking individual
appointment slots. A blocked slot is not available for students to book; only slots that have not
already been booked can be blocked. The service may also let advisors block and unblock
multiple slots (e.g. an entire day or a specific hour every day of the week) in one go.
In general, advisors cannot cancel students’ appointments. However, the application may check
appointments against the student information system in order to cancel appointments that can
no longer go ahead, e.g. because the student has left the university or changed their degree
programme.
Access to the service’s advisor functionality should be secured appropriately so that only
legitimately authenticated career advisors can access the functionality.
You may create a client as a user interface for career advisors, implementing the
request/response interactions with the web service, including authentication.