WHAT: Introduces Dockerfiles for development and production, Docker Compose configurations, a Makefile for common tasks, shell scripts for environment setup/teardown, a basic Express API with SQLite integration.
WHY: Enables easy setup and deployment of the application using Docker. Provides basic API endpoints for managing purchase items.
HOW:
- Creates `docker-compose.dev.yml` and `docker-compose.prod.yml` to define services and volumes.
- Introduces `Dockerfile.dev` and `Dockerfile.prod` to build container images with necessary dependencies.
- Adds `Makefile` with commands for building, running, and managing the application.
- Implements shell scripts for simplified Docker environment management.
- Sets up Express API with endpoints for CRUD operations on purchase items, using SQLite as the database.
- Uses `better-sqlite3` to connect and interact with the SQLite database.
Makes the `start.sh` script executable by changing its permissions.
This ensures that the script can be run directly without needing to
explicitly call `sh start.sh`.
Adds file-saver and nanoid packages for file downloading and unique ID generation functionality.
These dependencies are essential for implementing a new feature that allows users to download generated data and ensure uniqueness across the application. The file-saver package provides the necessary tools to save files on the client-side, while nanoid generates unique IDs.