Some checks failed
CI / test (pull_request) Failing after 1m8s
- Introduced a new document outlining UI structure, reusable template components, CSS variable conventions, and per-page data/actions for the CalMiner application. - Removed outdated idempotency audit and logging audit documents as they are no longer relevant. - Updated quickstart guide to streamline developer setup instructions and link to relevant documentation. - Created a roadmap document detailing scenario enhancements and data management strategies. - Deleted the seed data plan document to consolidate information into the setup process. - Refactored setup_database.py for improved logging and error handling during database setup and migration processes.
1.9 KiB
1.9 KiB
Development Environment Setup
This document outlines the local development environment and steps to get the project running.
Prerequisites
- Python (version 3.11+)
- PostgreSQL (version 13+)
- Git
- Docker and Docker Compose (optional, for containerized development)
Clone and Project Setup
# Clone the repository
git clone https://git.allucanget.biz/allucanget/calminer.git
cd calminer
Development with Docker Compose (Recommended)
For a quick setup without installing PostgreSQL locally, use Docker Compose:
# Start services
docker-compose up
# The app will be available at http://localhost:8000
# Database is automatically set up
To run in background:
docker-compose up -d
To stop:
docker-compose down
Manual Development Setup
Virtual Environment
# Create and activate a virtual environment
python -m venv .venv
.\.venv\Scripts\Activate.ps1
Install Dependencies
pip install -r requirements.txt
Database Setup
- Create database user:
CREATE USER calminer_user WITH PASSWORD 'your_password';
- Create database:
CREATE DATABASE calminer;
Environment Variables
- Copy
.env.exampleto.envat project root. - Edit
.envto set database connection details:
DATABASE_DRIVER=postgresql
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_USER=calminer_user
DATABASE_PASSWORD=your_password
DATABASE_NAME=calminer
DATABASE_SCHEMA=public
- The application uses
python-dotenvto load these variables. A legacyDATABASE_URLvalue is still accepted if the granular keys are omitted.
Running the Application
# Start the FastAPI server
uvicorn main:app --reload
Testing
pytest
E2E tests use Playwright and a session-scoped live_server fixture that starts the app at http://localhost:8001 for browser-driven tests.