0% found this document useful (0 votes)
6 views3 pages

Python Developer Coding Assessment - Requirement Document

This document outlines the requirements for a Python coding assessment focused on building a microservice backend using FastAPI, PostgreSQL, and Redis. Candidates must demonstrate skills in API development, data modeling, database integration, caching, and Dockerization, with specific functional requirements for CRUD operations on products. Deliverables include a GitHub repository, README, Docker files, and optional enhancements such as unit tests and API documentation.

Uploaded by

magic.mike906
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views3 pages

Python Developer Coding Assessment - Requirement Document

This document outlines the requirements for a Python coding assessment focused on building a microservice backend using FastAPI, PostgreSQL, and Redis. Candidates must demonstrate skills in API development, data modeling, database integration, caching, and Dockerization, with specific functional requirements for CRUD operations on products. Deliverables include a GitHub repository, README, Docker files, and optional enhancements such as unit tests and API documentation.

Uploaded by

magic.mike906
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Python Developer Coding Assessment – Requirement

Document

Overview

This document describes the requirements for a coding assessment to build a


microservice backend using Python. The candidate should demonstrate proficiency in
API development, database interaction, caching, and containerization using Docker.

Technology Stack

• Python with FastAPI


• SQLAlchemy or any equivalent ORM
• PostgreSQL
• Redis / any equivalent for caching
• Docker and Docker Compose

Functional Requirements

1. API Development

Develop a FastAPI application exposing the following endpoints:

• GET /products – List all products


• POST /products – Add a new product
• GET /products/{id} – Get product by ID
• PUT /products/{id} – Update product by ID
• DELETE /products/{id} – Delete product by ID

2. Data Modeling

Design a SQLAlchemy (or equivalent ORM) model for Product with the following fields:

• id: UUID or auto-incrementing ID


• name: String, required
• description: String
• price: Float, required
• in_stock: Boolean

3. Database Integration

• Configure the FastAPI app to connect to a PostgreSQL database


• Implement basic CRUD operations for the product model

4. Caching with Redis

• Cache the GET /products/{id} response using Redis


• Set the cache expiry to 60 seconds
• Invalidate the cache when a product is updated or deleted

5. Dockerization

• Create a Dockerfile for the FastAPI application


• Create a docker-compose.yml file including:
o FastAPI app
o PostgreSQL service
o Redis service

6. Optional Enhancements (Bonus)

• Use Pydantic models for request/response validation


• Write at least one basic unit test for any endpoint
• Expose interactive API documentation using Swagger UI (/docs)
• Use .env files to manage environment variables
• Provide a Postman collection or cURL commands to test the API

Deliverables

Submit the following:

• GitHub repository or zipped folder containing your project files


• README file with clear setup instructions
• Dockerfile and docker-compose.yml
• .env.sample file to describe expected environment variables
• (Optional) Postman collection or API test script
Timeline

Within 5 days from the time of task assignment

You might also like