You’ve been asked to build a super simple backend for a web app that lets users create digital sticky notes. Think of it like a minimalist version of Google Keep, no login, no fancy features, just a place to store and retrieve notes.
The frontend team wants to be able to:
- Create a note
- Get all notes
- Get a specific note by ID
- Delete a note
Storage: Start with in-memory storage (a Python list or dictionary). No database yet — just keep it simple.
Your digital post-it notes app was a hit with the frontend team, but now they want it to be more realistic. The biggest issue? Every time the server restarts, all notes vanish. That’s not acceptable anymore.
You’ve been asked to upgrade the backend so that:
- Notes are stored in a database!
- Each note has a timestamp for when it was created!
- The codebase is modular, separating routes, models, and database logic!
Storage: Use SQLite to persist notes!
You’ve been hired by a small freelance platform to build the backend for a task tracking system. Freelancers want to log tasks they’re working on, track their status, and view their progress over time.
The frontend team wants:
- A clean API to create, update, and retrieve tasks!
- Status tracking (e.g. pending, in_progress, completed)!
- Filtering by status or date!
- Optional due dates!
- A scalable structure for future features like user accounts or billing!
Storage: Use SQLite
You’ve been hired to build the backend for a platform that helps people learn new skills through structured challenges, peer feedback, and progress tracking. Users can enroll in learning paths, complete challenges, and receive feedback from others in the community. The platform also supports tagging, sorting, and filtering based on difficulty, topic, and completion status.
The system should allow:
- Users to track their progress across multiple learning paths
- Challenges to be completed, rated, and commented on
- Feedback to be stored and retrieved efficiently
The platform is designed to be scalable, with thousands of users and tens of thousands of challenges. Your API must be clean, performant, and intuitive for frontend developers to consume.
Example Use Cases:
- A user wants to browse all challenges tagged with “Python” and sorted by difficulty
- A learner wants to see their progress across multiple learning paths
- A challenge designer wants to update the difficulty level and description of a challenge
You’ve been hired to build the backend for a collaborative project management tool used by remote software teams.
The platform allows teams to manage projects, assign tasks, track progress, and collaborate in real time. Users can belong to multiple teams. Each team has multiple projects, and each project contains tasks. Tasks can be assigned to users, updated with status changes (e.g. todo, in_progress, done), and commented on.
Team Management
- Users can join or leave teams
- Each team has admins who can manage projects and members
Project & Task Management
- Projects belong to teams
- Tasks belong to projects and are assigned to users
- Tasks have statuses, priorities, and due dates
- Comments on tasks for collaboration
Activity Logs
- Every key action (e.g., task assignment, status change, comment) is logged with a timestamp
Filtering & Sorting
- Tasks should be filterable by assignee, status, priority, due date, etc.
- Sorting options for project views
Scalability Focus
- The system is expected to support large distributed teams (1000+ users, 10,000+ tasks per team)
You’ve been hired to build the backend for Chef’s Companion, a web-based platform that helps users discover and generate recipes based on what they have in their fridge. The platform is designed to be intuitive, personalized, and scalable, supporting thousands of users and a growing library of ingredients, dietary preferences, and recipe templates.
Users log in to a visual fridge interface where they see a randomized selection of food items. They can select ingredients they currently have, and the system will generate a recipe using those items. Recipes are generated using a custom NLP model trained on real-world cooking data.
- A user selects “tomato”, “onion”, and “spinach” and wants a vegan recipe under 30 minutes.
- A user wants to regenerate a recipe using the same ingredients but with a different cuisine style.
- A user wants to browse all saved recipes tagged “gluten-free” and sorted by prep time.
- A user wants to see the step-by-step instructions for a previously generated recipe.
- A user wants to update their dietary preferences and regenerate recipes accordingly.