From 1f4eda293ad761aa74dfd5c28cbe95f9719911d7 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Mon, 12 Feb 2024 16:13:41 +0100 Subject: [PATCH] More detailed build instructions --- BUILD.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/BUILD.md b/BUILD.md index 4796f5c..c8e9661 100644 --- a/BUILD.md +++ b/BUILD.md @@ -1,10 +1,16 @@ # Build Instructions +The build is fairly simple, and I intend to keep it that way. The project is split into two main parts: the backend and the frontend. + +Making all of these parts work properly under linux/macOS is fairly simple, but Windows is untested territory. You can always contact [Billy G™®©](https://support.microsoft.com) for help. + ## Backend For demo purposes, the backend uses sqlite3 as the database. The database is stored in the `backend` directory. -For migrating the database, simply navigate to the backend directory and run `make migrate`, this will initialize the sqlite3 database. +For future development, the database will be migrated to a more robust database such as PostgreSQL. This will require a few changes to the code, but the migration should be fairly simple. Practical difference for the programmer is the requirement of a running PostgreSQL server, for which a container can be used. + +For initializing the database, simply navigate to the backend directory and run `make migrate`, which will create the database and the necessary tables. To build and run the main server binary: @@ -15,8 +21,14 @@ make run The server will be running on `localhost:8080`. This server does not hot reload, so you will need to restart the server after making changes. +If you ever wonder what the makefile does, you can always inspect it. It's quite simple and self-explanatory. + ## Frontend +The frontend code might look very intimidating at first, but it's actually quite simple. The vast majority of the code is boilerplate and configuration. + +The important parts resides in the `src` directory, which contains the actual React components and corresponding styles. + The frontend is built using Vite with React. Vite handles hot reloading and bundling. First, you need to pull in the dependencies by running `npm install` in the frontend directory. @@ -24,4 +36,6 @@ To spin up the development server, run `npm run dev`. This will start the develo ## Release Builds -Under Construction TM +The release build for the backend is a simple binary that can be run on any machine. The release build for the frontend is a static bundle that can be served by any web server. + +We combine the frontend and backend into a single container using Podman/Docker. The `Containerfile` (also known as a Dockerfile) in the container directory is used to build the container. To see exactly how the container is built, refer to the `Containerfile`. \ No newline at end of file