-
Notifications
You must be signed in to change notification settings - Fork 2
Architecture Model
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.
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.
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.
This page tabulates all the sessions of the currently logged-in student.
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.
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.
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.
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.
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.
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.
The Tutor Management handles all the operations related to tutors. It can add new tutor reviews, add new tutor rating and update tutor reviews.
The Search Course can search the courses according to university, subject and course code.
The Session Management handles the request to create a new session when the available room, tutor, and student are passed to the backend.
The Review Management handles operations like adding new tutor reviews, adding new student reviews, getting reviews and updating reviews.
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.