-
Notifications
You must be signed in to change notification settings - Fork 5
Architecture Model
Description: Our system uses a layered architectural pattern to illustrate the subsystem decomposition, interaction between layers and the distribution of subsystems. The model allows us to split our system into a frontend layer and a backend layer. In this way, our system can be easily understood.
Login – Tianyu Zhao
- The login page is the first page that user accesses. Here the user can either create a new account by "signUp" button which redirects the user to the sign up page, or enter the username and password in order to login. Upon login, the user is assigned to both customer role and artist role at the same time.
Sign up – Tianyu Zhao
- New user can be able to create a new user account for the artgallery system in this page.
Home page – Angelina Duan
- This page shows current art pieces that could be purchased.
- Artists can upload art pieces by clicking the "Upload" button.
- Users can see their account information by clicking the "Info" button.
- Users can see detailed information about the art piece by clicking it.
Welcome page – Angelina Duan
- This is the first page of the Art Gallery System.
- This page has a button links to the login page called "Login/Sign up".
- This page has a button links to the user manual called "User Manual".
Account information page – Zhekai Jiang
- This is where the user tracks and manages all his/her purchases, uploaded art pieces, and saved addresses. As a customer, the user can view all the purchases made and track the delivery status. As an artist, the user can view all the art pieces uploaded and see if they have been purchased. For all the art pieces that have been purchased, the artist can view the delivery address or the desired pick-up store specified by the customer and update delivery information when needed. Also, this page enables the user to add, edit, or delete some frequently used addresses that could be used for future purchases.
Purchase page – Amelia Cui
- The purchase page provides the user with the ability to create a new purchase with various delivery options. The user first needs to choose the payment method and input the card ID. After that, the user shall be able to choose to pick up instore or parcel delivery. For parcel delivery, the user can choose the existing addresses in their own account, or he/she can input a new delivery address. Once the payment and delivery options are filled in correctly, a successful payment is created and the user will be redirected to his/her home page.
Artpiece Upload page – Zheyan Tu
- The upload page provides a form for user to fill, by entering all attributes needed to create a new art piece. If all fields are filled with a valid input, click 'Create!' button to add a new art piece. After click the 'Reset' button, all fields are cleared. The 'Cancel' button redirects the user back to his/her home page.
Artpiece info page – Amelia Cui
- This page shows detailed information about the art piece including art piece ID, name of the art piece, author, date, and price.
- Customers can purchase the desired art piece by clicking the "Purchase" button.
At the point this architecture model was created, the mobile GUI has not been created. More details about this section will be updated later.
The backend is split into the service layer and the persistence layer.
The service layer is split into a controller layer and business methods
- The controller layer handles the interaction with frontend via RESTful controllers.
- 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.
User management
- User management handles all the operations related to the customer/artist. More specifically, it can create a user account, update account information, and, for artists, handles art piece uploads as well.
Art piece management
- Art piece management handles all operations related to the creation and modification for art pieces.
Purchase management
- Purchase management handles the payment and delivery for a specific art piece.
The model classes consist of all the business entities that are used to describe the system. The objects instantiated from these classes can be manipulated only by service classes. The service class can create, read, update, delete business entities via CRUD. This can prevent users from directly accessing or editing business classes which are saved to the database.
For this project, we are using a postgres database set up in a Heroku application.