Pretty Pics Portal. A full-stack application for managing and displaying images.
- Frontend: React, Vite, Tailwind CSS
- Backend: Python, FastAPI, SQLAlchemy, Alembic
- Database: PostgreSQL
- Dependency Management: uv (Python), npm (Node.js)
- Testing: Vitest (frontend), Pytest (backend)
- Containerization: Docker, Docker Compose
- Web Server: Nginx
- Docker and Docker Compose
- Make
- Python 3.12+
- Node.js and npm
- uv (for Python dependency management)
-
Clone the repository:
git clone <repository-url> cd Prepix
-
Set up environment variables: Create a
.envfile in thebackend/directory by copying the example file:cp backend/.env.example backend/.env
Update the
backend/.envfile with your database credentials and other settings.Note: This
.envfile is essential for running the application with Docker Compose. Thedocker-compose.ymlfile is configured to load this file and provide the necessary environment variables (like database credentials) to the application containers. -
Install dependencies (for local development): Use the
makecommand to install all backend and frontend dependencies.make install
Note: This step is recommended for setting up a complete development environment. Installing dependencies locally is crucial for IDE support (e.g., autocompletion, linting) and for running tests or other commands directly on your host machine. If you only intend to run the application via
docker-compose up, this step is not strictly required, as dependencies are managed within the Docker containers.
To run the application in a containerized environment, use Docker Compose:
docker-compose up --buildThe application will be available at http://localhost:80.
This project includes a comprehensive test suite for both the frontend and backend.
To run all tests for both the frontend and backend, use the following command:
make testTo run only the backend tests:
make test-backendTo run only the frontend tests:
make test-frontendTo generate test coverage reports for both frontend and backend:
make coverageCoverage reports will be generated in the frontend/coverage/ and backend/htmlcov/ directories.
To run the tests within a Docker container (as in a CI environment), use:
make docker-testThe source code of this project is distributed under the Apache 2.0 license — see LICENSE.
The EUCLID data used here for illustration purposes is subject to the CC-BY-NC-ND-4.0 license.







