Skip to content
Henri Sjöblom edited this page Nov 10, 2024 · 13 revisions

Architecture

Our application uses an architecture that relies on Next.js for both frontend and backend development. Supabase is used for authentication and database services, and the OpenAI API provides AI functionalities.

+------------+                +-----------------+
|   Client   |  <---------->  |     Next.js     |
| (Browser)  |                |   Front-End     |
+------------+                +-----------------+
                                      ^
                                      |
                                      v
                       +-------------------------+            +----------+
                       |     Next.js Backend     | <------>   | Supabase |
                       |  (Server-Side + API)    |            | (DB/Auth)|
                       +-------------------------+            +----------+
                                     ^
                                     |
                                     v
                       +-------------------------+
                       |       OpenAI API        |
                       |        (External)       |
                       +-------------------------+

Database

Provided by Supabase, based on PostgreSQL. Supabase provides an ORM for the codebase, which eases the development and makes it safer, since the developer doesn't need to write raw SQL-queries.

User interface

The design language that is targeted is modern that is a little minimalist. To fasten and ease the development, some parts are made with pre-ready components, like from ShadCN. Everything needs to and will scale on mobile and on desktop screens, even on ones with larger PPI.

Login and register

Flash cards front page

The final design is mostly the same as in the original plan. Options and History cards were swapped for better UX.

image

Flash cards play and finish

Clone this wiki locally