Skip to content

Architecture Model

adambabs edited this page Nov 17, 2019 · 29 revisions

Architectural Model

Architectural Model

External Subsystems - Users Viewpoints

There are three main parts of the system – each for a different user group.

  • Students – a group that will use the system to improve their academic performance and attend lessons.
  • Tutors – a group that will teach a wide variety of courses.
  • System Managers – a group that will supervise the operation of the system.

Our group implements the Tutors' viewpoint.

Frontend - Consists of two parts:

  • Mobile Application
  • Web Application

Frontend – Mobile Application

To be implemented as a part of deliverable 4.

Frontend – Web Application

Graphical User Interface Represents all options that the tutor has Tutor Business Methods:

  • sign in and log in

Tutors should be able to create an account with a username, a private password and an email to receive student notifications. To update their account information, session availabilities and reviews, tutors should be able to log-in to the application with the credentials created during sign up.

  • apply to teach new subjects

  • indicate availability

The tutor must submit an application to the company manager indicating which subject(s) they would like to teach. The tutor is not limited to one application; however, they must fill one application per subject matter. The tutor provides their availability for any time period (weekly, monthly or yearly) in order to be paired with a student once the tutor’s application is verified. A tutor can modify their availabilities.

  • review students and the system

  • see student reviews

Tutors have the possibility to review their students and view students reviews. Tutors are also allowed to review the system's performance. In order to improve the quality of teaching, tutors should be able to review their students- reviews can be anonymous if wanted. Reviews can also be anonymous. In both cases, writing the review is optional.

  • confirm or delete appointments

In order to be informed when a student makes a tutoring request, the tutor should receive a notification of the request including, but not limited to, an email notification. They should have the ability to view the request using their login on the website including the date, time, student’s name, subject matter, and the student’s school. Once a student has requested a tutoring session, the tutor should be able to view the requester’s reviews from other tutors and the student’s session history. Once a tutoring session has been requested, the tutor should have the ability to accept or decline the tutoring session.

  • change the rate and see what other tutors charge

The tutors decide how much they want to charge per hour for teaching each subject matter and they submit that information in a form on the website. These hourly rates are then added with the commission rate set by the company and finally made available to be viewed in the website by the users (students, manager, other tutors etc.) as the tutor’s hourly rate. The tutor is made aware of the commission rate through the form.

The requests made in the Web Application prompt RESTful API method calls which are sent to the Backend component of the system.

Backend - Consists of four components that interact with each other

Data Persistence Layer

Persists objects that were created and remain in the system throughout the working time of the system. Data is managed by the Service Controller.

RESTful API Controller

Sends queries to the Service Controller. Calls to POST and GET the data have been implemented here. It uses the model to manage entities.

Service Controller

Controller - contains the implemented business methods that create, read, update and delete the data in the database. It answers the queries called in the frontend which were sent to the REST API controller. Service Controller processes them and makes changes according to the received query. Service controller interacts with the data by reading the existing data and returning it to the frontend, or by taking the data from the fronted and persisting it in the database. It uses the model to manage entities.

Model

Implementation of methods to manage the objects of each entity. Used by the Service Controller and API controller.

Clone this wiki locally