Skip to content

Architecture Model

Mustafain Ali Khan edited this page Nov 18, 2019 · 19 revisions

Description: Our system uses a layered architecture design pattern where each layer either provides services for the layer above it and/or uses services from the layer below it. This pattern allows us to logically split our project into frontend, backend and persistence layers which will allow us to change the individual layers if needed. For instance, developing a new android frontend will be easier.

Frontend

Login Page

The login page is the first page that the user accesses. Here the user can either create a new account or login using an existing account. Once a user logs in, they are redirected to the home page which is essentially the dashboard for the user.

Home Page (Dashboard)

This page consists of a navigation bar that allows the user to access the About page and Contact page of the web application. The About page provides an introduction of the app along with information about getting started with the system. The Contact page provides a list of frequently asked questions and contact information if users have further questions. More importantly, the home page allows the user to Manage Sessions, Book A New session and also Write Reviews for the tutors. The home page also allows the user to Logout.

Manage Sessions Page

This page tabulates all the sessions of the currently logged-in student.

Search Page

The Search page provides the user with the ability to select their university. Once the user selects their university, a list of courses for the selected university appears. The user can then select the course they want to study. After selecting a course, the list of available tutors for the page is populated. The user can then select a tutor and click on the view tutor profile button. This redirects the user to the Tutor profile page.

Tutor Profile Page

The tutor profile page shows the profile of the selected tutor. This profile includes the tutor's details including their hourly rate. It also shows reviews that other students have posted for the tutor. The user can then choose to book a session with the tutor, this redirects them to the 'Booking' page. The user can also write a review for the tutor, this redirects them to the 'Review' page.

Reviews Page

The reviews page provides the user with the ability to write new reviews for a specific tutor. The user can not only write text reviews but also give numerical rating to the tutors. After writing the review, user will be redirect to the home page.

Backend

The Backend provides services to the frontend through RESTful services. RESTful API methods in the Rest controller call methods in the Business services component, which communicates with the Persistence Layer.

Rest Controller

The Rest Controller handles all the GET, POST, PUT, and DELETE requests from the frontend by mapping them to methods which in turn call the Business services.

Business Services

Student Management

The Student Management handles all the operations related to students. It can create new student accounts, update student reviews, add new student reviews, login student and update a student.

Tutor Management

The Tutor Management handles all the operations related to tutors. It can add new tutor reviews, add new tutor rating and update tutor reviews.

Search Course

The Search Course can search the courses according to university, subject and course code.

Session Management

The Session Management handles the request to create a new session when the available room, tutor, and student are passed to the backend.

Reviews Management

The Review Management handles operations like adding new tutor reviews, adding new student reviews, getting reviews and updating reviews.

Persistence

This component communicates with the Database enabling the Backend services to perform CRUD operations on objects from the model classes. The Heroku Database allows persisting and retrieval of data allowing the Backend to perform services mentioned above.