This repository contains boilerplate projects for building and deploying REST APIs using both Python (FastAPI) and Node.js (Express), as well as supporting data science, frontend, and NGINX reverse proxy components. These projects are intended as reference implementations to help you quickly scaffold new API projects with best practices for structure, deployment, and testing.
windows_tooling/
├── python_api/ # FastAPI-based Python REST API
├── node_api/ # Express/Mongoose-based Node.js REST API
├── data_science/ # Data science scripts, notebooks, and experiments
├── frontend/ # Frontend application (e.g., React, Vue, or static site)
├── nginx/ # NGINX reverse proxy configuration and Docker setup
└── README.md # This file
- Framework: FastAPI (Python)
- Database: Supports MongoDB (with population scripts) and SQLAlchemy models for relational DBs.
- Features:
- Modular structure with routers and models
- Docker and docker-compose support
- Azure deployment templates (Bicep)
- Scripts to populate MongoDB from CSV
- Unit tests with pytest
- Use case: Ideal for Python developers needing a modern, async API with OpenAPI docs and rapid development.
See python_api/README.md
for setup, usage, and deployment instructions.
- Framework: Express (Node.js)
- Database: MongoDB (via Mongoose)
- Features:
- Modular structure with routes and models
- Docker and docker-compose support
- Kubernetes/EKS deployment templates (CloudFormation and manifests)
- Environment variable configuration
- Use case: Ideal for JavaScript/TypeScript developers needing a robust, scalable REST API with MongoDB.
See node_api/README.md
for setup, usage, and deployment instructions.
- Contents: Jupyter notebooks, Python scripts, and data exploration tools.
- Purpose: For data analysis, feature engineering, and experimentation related to the APIs or datasets.
- Typical usage: Run notebooks for EDA, model training, or generate reports to support API development.
- Contents: Source code for the frontend application (e.g., React, Vue, or static HTML/JS).
- Purpose: Provides a user interface for interacting with the APIs.
- Typical usage: Develop and build the frontend locally or for deployment alongside the backend APIs.
- Contents: NGINX configuration files and Docker setup.
- Purpose: Acts as a reverse proxy to route traffic to backend APIs and serve static frontend assets.
- Typical usage: Use in production or local Docker Compose setups to unify API and frontend endpoints under a single domain.
These projects are intended as starting points or references for your own API development. You can copy, adapt, or extend them as needed for your organization or personal projects.
MIT License. See individual project folders for more details.