A lightweight FastAPI project built to practice designing and consuming a RESTful API — created as part of the AWS Workshop's Task.
The service lets you manage a simple collection of startup ideas, each with a name, industry, and budget, through standard CRUD operations.
| Method | Endpoint | Description |
|---|---|---|
GET |
/ideas |
Fetch every startup idea in the collection |
GET |
/ideas/{id} |
Fetch a single idea by its ID |
POST |
/ideas |
Create a new idea (name, industry, budget) |
PUT |
/ideas/{id} |
Update the details of an existing idea |
DELETE |
/ideas/{id} |
Delete an idea from the collection |
- Python
- FastAPI — web framework
- Uvicorn — ASGI server
- uv — dependency & environment management
Follow these steps to run the project on your machine:
# 1. Clone the repository
git clone <your-repo-url>
cd <repo-folder>
# 2. Create a virtual environment
uv venv
# 3. Activate the environment
# On Windows:
.venv\Scripts\activate
# On macOS/Linux:
source .venv/bin/activate
# 4. Install dependencies
uv sync
# 5. Run the development server
uvicorn main:app --reloadOnce the server is running, open your browser to:
http://127.0.0.1:8000/docs
This launches the interactive Swagger UI, where you can test every endpoint directly.
.
├── main.py # FastAPI app and route definitions
├── pyproject.toml # Project metadata and dependencies
├── uv.lock # Locked dependency versions
└── README.md
Here are a few example entries you might store in the API:
- Eco Delivery App — connects local businesses with eco-friendly couriers
- Freelance Skill Marketplace — matches freelancers with short-term gigs
- Personal Finance Tracker — helps users budget and track expenses with AI insights
This project was built as a hands-on exercise to understand:
- Structuring a FastAPI application
- Implementing full CRUD functionality
- Managing environments and dependencies with
uv