This is the UI of CODE's Library Management App (AKA Treedome Library). It's an ongoing development taken by students at CODE University of Applied Sciences. The library is named after the famous Treedome of SpongeBob SquarePants, which portraits the small size of our physical installation.
You can watch a short demo of the application on YouTube.
- Technologies
- System Requirements
- Installation Instructions
- Folder Structure
- Architecture Overview
- Deployments
The application is written using the following stack.
- Docker.
- Docker Compose.
- Google Cloud SDK.
- Node.js 16 (we recommend using
nvm
to support multiple Node.js versions)
Just before we get started, make sure you are running Node 16.
node --version # should output something similar to v16.x.x
In case you are using nvm, switch to the right version by typing the following command.
nvm use 16
Now that we know we are running on the right environment, let's sping up the app.
make start
By now you should be able to open http://localhost:3000 in your browser to see the application running.
To make it easy for new developers to navigate through our codebase, we provided you with a short explanation on why we split our code the way we do.
In a nutshell, our application is organized as follows.
src/
components/ Presentational components
pages/ Page components (Next.js convention for file-based routing)
hooks/ Custom React Hooks
helpers/ Helper functions used across the app
services/ External APIs integrations
For a more detailed exaplanation, navigate to the most relevant section.
Please click on the diagram below to access the full interactive diagram.
We have two environments for deployment: staging and production. The first is running on Heroku, while the second runs on Google Cloud Run. Each one is triggered based on the name of the branch being pushed to the repository.
- Pushes to main will trigger a deployment to the staging environment.
- Creating or updating a pull requests will also trigger a deployment to the staging environment.
- Tags prefixed with a "v" (i.e., v1.0.0) will trigger a deployment to the production environment.