CoursesBuild real appsBackend

Build a real API for a small online shop.

For people who know the basics of one language and want to build what runs on the server. You build the shop’s API step by step: routes, a database, logins, payments and tests, then the files to ship it.

Start inPython + FlaskJavaScript + Node.jsJava + Spring BootC# + ASP.NET CoreTypeScript + Node.jsGo

You type every line A real checker runs your code Nothing to install
Lessons
188
Chapters
12
Languages
6
Level
Intermediate
Interview questions
15
Free
The first chapter
Before you start
Variables, loops, lists, dictionaries and functions in one of the languages.

What you build

The shop’s API

Products, orders, customers and reviews, stored in a SQL database.

Logins

Sign-up, hashed passwords, tokens, sessions and admin-only routes.

Checkout

Payments, declined cards, webhooks, emails and a job queue.

Your own API

A link shortener, from an empty file.

Tools and topics

Syllabus

The Python lessons. The other languages follow the same plan.

01How the Web Works12 lessons
  1. Your First Requestfree
  2. The Parts of a URLfree
  3. Read a JSON Answerfree
  4. Check the Status Firstfree
  5. Send a Query Stringfree
  6. Headersfree
  7. An API Keyfree
  8. Send Data with POSTfree
  9. When the Server Says Nofree
  10. Errors and Timeoutsfree
  11. Follow the Pagesfree
  12. Project: A Restock Reportfree
02Your First API22 lessons
  1. Your First Route
  2. Send JSON
  3. More Routes
  4. One Product by ID
  5. When It Isn't There
  6. Filter with a Query String
  7. Two Filters at Once
  8. Add a Product
  9. Check the Input
  10. Remove a Product
  11. Update a Product (PUT)
  12. Change Only the Price (PATCH)
  13. Methods a Path Allows
  14. One Way to Send Errors
  15. JSON for Unknown Paths
  16. Sort the List
  17. Search by Name
  18. Only the First Few
  19. List the Categories
  20. Shop Statistics
  21. Reviews for a Product
  22. Project: The Shop So Far
03SQL30 lessons
  1. Your First Query
  2. Choose the Columns
  3. Filter Rows with WHERE
  4. AND and OR
  5. IN and BETWEEN
  6. Match Text with LIKE
  7. Missing Values: NULL
  8. Sort with ORDER BY
  9. LIMIT and OFFSET
  10. Distinct Values
  11. Count Rows
  12. SUM, AVG, MIN, MAX
  13. Group Rows with GROUP BY
  14. Filter Groups with HAVING
  15. Name Columns with AS
  16. Add Rows with INSERT
  17. Change Rows with UPDATE
  18. Remove Rows with DELETE
  19. Create a Table
  20. Primary Keys and Constraints
  21. Foreign Keys
  22. Join Two Tables
  23. LEFT JOIN
  24. Join Three Tables
  25. Revenue per Product
  26. A Query Inside a Query
  27. CASE: Labels from Values
  28. Indexes
  29. Transactions
  30. Project: Monthly Sales Report
04APIs with a Database18 lessons
  1. Connect the Shop to a Database
  2. Rows as Dictionaries
  3. One Product from the Database
  4. Search Products Safely
  5. Filters in SQL
  6. Add a Product (INSERT)
  7. Update a Product (UPDATE)
  8. Delete a Product (DELETE)
  9. Orders
  10. What an Order Contains
  11. Place an Order
  12. All or Nothing
  13. Pages of Results
  14. Too Many Queries
  15. Sorting Safely
  16. Change the Table: Migrations
  17. A Small Query Helper
  18. Project: Customers
05Users and Security20 lessons
  1. Who May Change Things?
  2. 401 or 403?
  3. Sign Up
  4. Never Store Passwords
  5. Log In
  6. Tokens
  7. Who Am I?
  8. A login_required Decorator
  9. Customers and Admins
  10. Sessions with Cookies
  11. Log Out
  12. Change the Password
  13. Too Many Tries: Rate Limits
  14. CORS
  15. Secrets Live Outside the Code
  16. Validate Everything
  17. Don't Let Clients Set Everything
  18. Escape What You Echo
  19. Only Your Own Orders
  20. Project: Reviews by Logged-in Users
06Payments and Other Services18 lessons
  1. Call Another API
  2. When the Other API Fails
  3. Don't Wait Forever
  4. Try Again, a Few Times
  5. Take a Payment
  6. Declined Cards
  7. Webhooks: The Provider Calls You
  8. Check the Webhook's Signature
  9. The Same Request Twice
  10. Send an Email
  11. Do It Later: A Job Queue
  12. A Worker
  13. When a Job Fails
  14. Upload a Photo
  15. Serve the Photo
  16. Check Uploads
  17. Prices in Another Currency
  18. Project: Checkout
07Speed12 lessons
  1. Measure First
  2. An Index for a Slow Search
  3. Cache an Answer
  4. When the Cache Lies
  5. Expire the Cache
  6. ETags and 304
  7. Fix the N+1
  8. Only the Columns You Need
  9. Insert Many at Once
  10. Two Buyers, One Lamp
  11. Pages That Stay Fast
  12. Project: A Fast Product List
08Tests and Running It14 lessons
  1. Your First Test
  2. Test the Answer
  3. Test the Errors
  4. Test a POST
  5. Fresh Data for Every Test
  6. Tests That Catch Bugs
  7. Test the Login
  8. Fake the Other Service
  9. Logging
  10. A Request ID
  11. A Health Check
  12. Settings per Environment
  13. When Something Breaks
  14. Project: Test the Checkout
09Shipping It10 lessons
  1. requirements.txt
  2. Settings from the Environment
  3. A Real Web Server: Gunicorn
  4. A Dockerfile: The Base Image
  5. Install Before You Copy
  6. Start the App
  7. .dockerignore
  8. Health and Readiness
  9. Run the Tests on Every Push
  10. Project: The Release Checklist
10Backend with AI12 lessons
  1. The AI Forgot the Missing Case
  2. The AI Pasted Text into SQL
  3. The AI Left the Door Open
  4. Off by One
  5. Money in Floats
  6. The AI Oversells
  7. The AI Shows Too Much
  8. A Shared Default
  9. Dates the AI Got Wrong
  10. The AI Stored Passwords
  11. The AI's Cache Never Forgets
  12. Project: Review an AI Pull Request
11Your Own API5 lessons
  1. Short Links: Create
  2. Short Links: Redirect
  3. Short Links: Count the Clicks
  4. Short Links: Only Real URLs
  5. Short Links: Delete with a Key
12Interview Questions15 lessons
  1. Rate Limiter: A Sliding Window
  2. Rate Limiter: A Token Bucket
  3. Don't Double-Book the Room
  4. A Leaderboard with Ties
  5. The Same Webhook, Twice
  6. Retry with Backoff
  7. A Circuit Breaker
  8. Hold Stock for 10 Minutes
  9. A Bulk Request That Half Fails
  10. Autocomplete
  11. A Key-Value Store with Expiry
  12. A Job Queue with Priorities
  13. Two Versions of One API
  14. A Counter That Doesn't Lose Clicks
  15. Roll Out to 20% of Users

Questions

Something else?
team@algocademy.com

Which language should I pick?

The one you already know. You build the same shop in every language.

Will I put it on a real server?

You write the real files, such as a Dockerfile and a workflow that runs the tests on every push. The checker reads them and tells you what is missing. Nothing is deployed for you.

More in Build real appsFrontendFull-StackSecurityAll courses

LESSON 1

Your First Request

The first chapter is free, no card needed. The rest comes with PRO.