This repository contains the backend and frontend services for the amazee.ai application. The project is built using a modern tech stack including Python FastAPI for the backend, Next.js with TypeScript for the frontend, and PostgreSQL for the database.
- Backend: Python FastAPI
- Frontend: Next.js + TypeScript
- Database: PostgreSQL
- Testing: Pytest (backend), Jest (frontend)
- Containerization: Docker & Docker Compose
- Docker and Docker Compose
- Make (for running convenience commands)
- Node.js and npm (for local frontend development)
- Python 3.x (for local backend development)
-
Clone the repository:
git clone [repository-url] cd [repository-name]
-
Environment Setup:
- Copy any example environment files and configure as needed
- Ensure all required API keys are set
-
Start the services:
docker-compose up -d
This will start:
- PostgreSQL database (port 5432)
- Backend service (port 8000)
- Frontend service (port 3000)
make backend-test # Run backend tests
make backend-test-cov # Run backend tests with coverage report
make frontend-test # Run frontend tests
make test-all # Run both backend and frontend tests
make test-clean # Clean up test containers and images
To clean up test containers and images:
make test-clean
-
Start all services in development mode:
docker-compose up -d
-
View logs for all services:
docker-compose logs -f
-
View logs for a specific service:
docker-compose logs -f [service] # e.g. frontend, backend, postgres
-
Restart a specific service:
docker-compose restart [service]
-
Stop all services:
docker-compose down
The development environment includes:
- Hot reloading for frontend (Next.js) on port 3000
- Hot reloading for backend (Python) on port 8800
- PostgreSQL database on port 5432
Access the services at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8800
.
├── app/ # Backend Python code
├── frontend/ # React frontend application
├── tests/ # Backend tests
├── scripts/ # Utility scripts
├── docker-compose.yml # Docker services configuration
├── Dockerfile # Backend service Dockerfile
├── Dockerfile.test # Test environment Dockerfile
└── Makefile # Development and test commands
DATABASE_URL
: PostgreSQL connection stringSECRET_KEY
: Application secret key
NEXT_PUBLIC_API_URL
: Backend API URL
- Create a new branch for your feature
- Make your changes
- Run the test suite
- Submit a pull request
This project is licensed under the Apache License, Version 2.0 - see below for details:
Copyright 2024 amazee.io
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For the full license text, please see http://www.apache.org/licenses/LICENSE-2.0