A full stack application for todo duties management that can add/edit/complete the duties.
Docker
and Docker Compose
are required. Recommend the newest version of Docker and Docker Compose.
The exact minimum versions that can run this project has not been tested. However, they must be at least the versions that support include
syntax in docker-compose.yml
is required. See Docker Docs on include.
- Build the docker images needed and run the containers with the below command.
make build-and-run
- Open the browser and go to http://localhost. Done!
This project has setup github workflows for CI. Formatting / linting / unit tests for both frontend and backend, integration tests for backend, and end to end tests for the entire application.
See .github/workflows
directory for more details.
This project has a convention that each pull request should be manageable in size and each commit should be focused on the change as described in the commit message.
No direct pushes to main branch and all changes should be made via pull request.
- Node v20
- Docker and Docker Compose, for spawning a local PostgreSQL database for backend
Install the node dependencies needed with the below command.
make local-install
backend/
directory is for backend code.
See README of backend for more details.frontend/
directory is for frontend code.
See README of frontend for more details.e2e/
directory contains end-to-end test code usingCypress
.
See make e2e-dev for shortcut to runcypress
in this project. Also can refer to the official document ofcypress
for further details.
Noted that term of development mode
below means that the application will be reloaded automatically when the code is changed.
Run the backend server in development mode.
Run both frontend and cypress
in development mode. Also have to run make backend-dev
in another terminal.
See makefile for more details.
README of backend and README of frontend for more specific commands of both frontend and backend during development.