hack-quickstart is a command-line tool designed to generate a full-stack application that can be initiated with Docker. It supports multiple backend frameworks, frontend frameworks, and databases. Based on your input, the generator creates a project structure that includes:
- A backend service (using either Flask, FastAPI, or Django).
- A frontend service (using React, Angular, or Vue).
- A database service (using MySQL or PostgreSQL).
- A complete Docker Compose setup that ties all these services together.
This tool is modular and extensible
- New frameworks or services can easily be added by introducing new templates.
- Existing frameworks can be updated to incorporate starter code
| Technology | Supported Version |
|---|---|
| Python | 3.10 |
| Node | 20 |
| MySQL | 8 |
| PostgreSQL | 15 |
| Component | Supported Options |
|---|---|
| Backend | Flask, Django, FastAPI |
| Frontend | React, Angular, Vue |
| Database | MySQL, PostgreSQL |
- Docker Desktop installed on your machine - to initialize and run the generated project
- Python 3.6+ installed on your machine to run the generator script
- Jinja2 for rendering Docker templates
If not installed, use the following command to install using pip:
pip install jinja2
Run the script from the command line using Python. Example:
python hack-it-up.py --backend <backend> --frontend <frontend> --db <database> --output <output_dir>python hack-it-up.py \
--backend flask \
--frontend react \
--db mysql \
--output /Users/username/Desktop/Projects/my_new_project--backend: Backend choice (Usedjango,fastapi,flask)--frontend: Frontend choice (Usereact,angular,vue)--db: Database choice (Usemysql,postgres)--output: Path to the generated output directory structure (Full path)
Note
Ensure that the output directory is accessible to the code
Once the project is initialized successfully using the above command, you should see the following directory structure:
|---backend/
| |---Dockerfile
| |---<backend_files>
|---frontend/
| |---Dockerfile
| |---<frontend_files>
|---docker-compose.yml
cd to this directory from terminal and initialize the project using the command:
docker-compose up --build