Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions docs/architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Architecture

## Overview

In contrast to `IT2810-H26/T24-Project-1`, `IT2810-H26/T24-Project-2` has a
distinct frontend and backend. The backend is hosted on the group's virutal
machine, and will be responsible for the custom `GraphQL` backend, and we will use
`MySQL` as our database solution. `Apache2` will be used as the web server.

Refer to this diagram for an overview of the basic system architecture.
Deviations from this plan may occur depending on the direction of the project.

![System Architecture](images/architecture.svg)

## Client

The client is responsible for the rendering of the UI Components. We will use
`React` to create reusable components for the frontend. Data will be stored on
the browser and is managed by `Apollo Client`. The user will be able to create
Pokemon Teams, which will be saved to their local browser storage so they are
persistent between sessions. These can later be published for other users to see
on the website by utilizing `GraphQL` to make a new database row. These other
teams can be liked to mutate the database row.

## Backend

The backend hosts the `GraphQL API endpoint`. Queries made towards it will be
resolved and it will query the `MySQL` database, which holds the Pokemon data
imported from Smogon.
Loading