This is a web app built with ReactJS, ExpressJS, PostgreSQL, and JWT. It's part of the Solunova application process.
The app consists of a register and login form, and a private Home page. Focused on authentication with JWT.
Each of the different services, frontend, backend, and database, is an independent Docker container. The whole project can be run with the Docker Compose tool.
The scope of the app is limited. It only allows creating users and login, while the Home page only shows the user's info. The JWT token is stored in Local Storage for its inspection.
The main concept is based on the Horizon Zero Dawn videogame. The images shown on the Login page are screenshots taken by myself during my previous gameplays. Other assets were extracted from the internet and adapted properly.
The Home page is inspired by Jacob's design.
- Install Git LFS. This project keeps track of frontend/public/videos/trailer.mp4 with Git LFS, so you'll need to install it to be able to include the trailer video when cloning the repo. Alternatively, you could simply download the file from Github and make the replacement manually.
- Clone the repo:
git clone git@github.com:manuelvargastapia/solunova_test.git
. - Build the images and run all the containers jointly:
sudo docker-compose up
.* - Visit http://localhost:5000 to see the app.
- When finish, tear down the containers:
sudo docker-compose down
.
Use the following settings to connect to the database:
- Hostname: localhost
- Port: 2345
- Database name: solunova_test
- Username: postgres
- Password: password
During development, tune the setting in backend/src/config/db_config.js. Note that a random port 2345 has been used to avoid potential conflict with running instances; see docker-compose.yml.
*Note that sudo
is not required if this optional configuration is implemented.