A personal finance application built with React, Node.js, Express, and PostgreSQL.
- Docker Desktop v4.37.2 or later
- Docker Compose v2.31.0 or later
-
Clone the repository
git clone git@github.com:Code-Campfire/hearthside-hackers.git cd hearthside-hackers -
Environment Setup (Optional - defaults are already configured)
The project includes
.envfiles with default values for local development. You can customize them if needed:backend/.env- Backend server and database configurationfrontend/.env- Frontend API URL configuration
Reference the
.env.examplefiles for available options. -
Start the application
docker-compose up -d
This will start three containers:
- PostgreSQL database
- Node.js backend API
- React frontend application
-
Access the application
- Frontend: http://localhost:5174
- Backend API: http://localhost:3001
- Database: localhost:5434
-
Stop the application
docker-compose down
.
├── backend/ # Node.js + Express API
│ ├── src/
│ │ ├── index.ts # Express server
│ │ └── db.ts # PostgreSQL connection
│ ├── Dockerfile
│ └── package.json
├── frontend/ # React + TypeScript + Tailwind
│ ├── src/
│ │ ├── App.tsx # Main app component
│ │ └── main.tsx
│ ├── Dockerfile
│ └── package.json
├── rundown/
│ └── techrundown.md # Technical documentation
└── docker-compose.yml # Docker orchestration
- Hello World Page: Simple home page displaying "Hello World"
- Connection Status: Shows "Connected" in green when the backend and database are successfully connected
- Health Check Endpoint:
/api/healthendpoint to verify backend and database connectivity
- React v18.3.1
- TypeScript v5.6.3
- Tailwind CSS v3.4.16
- Vite v7.2.2
- Axios v1.7.9
- Node.js v22
- Express.js v4.21.2
- TypeScript v5.6.3
- PostgreSQL driver (pg) v8.13.1
- PostgreSQL v17.2
- Docker
- Docker Compose
- GET
/api/health- Returns backend and database connection status
- Response:
{ "status": "ok", "message": "Backend and database are connected", "database": "connected" }
The application runs in development mode with hot-reloading enabled for both frontend and backend.
# All services
docker-compose logs -f
# Specific service
docker-compose logs -f backend
docker-compose logs -f frontend
docker-compose logs -f databasedocker-compose up -d --buildThe PostgreSQL database is initialized with an empty schema. The development team will create schema migrations as needed.
Database Credentials (for development):
- Host: localhost (or
databasewithin Docker network) - Port: 5434 (host) / 5432 (container)
- Database: budget_analyzer
- User: postgres
- Password: postgres
Refer to rundown/techrundown.md for detailed technical documentation and future implementation plans.