← Course catalogue
SWE-230Intermediate

Software development

Python Flask Web & API Development

Turn Python skills into secure, testable web applications and lightweight APIs with Flask.

Course outline: enrolment opens after THNF content and assessment review.

What you will be able to do

Clear outcomes. Practical evidence.

  • Structure a Flask application
  • Validate requests
  • Use templates and databases
  • Test and deploy a service

Course structure

Modules and lessons

01

Professional Python, environments and typing

Explain and apply venv, dependency pinning, dataclasses, type hints, linting, project layout to a tested, privacy-safe solution.

  1. Professional Python, environments and typing60 min
02

Advanced functions and data modelling

Explain and apply comprehensions, generators, decorators, closures, dataclasses, enums to a tested, privacy-safe solution.

  1. Advanced functions and data modelling60 min
03

Object-oriented design

Explain and apply encapsulation, composition, protocols, services, value objects to a tested, privacy-safe solution.

  1. Object-oriented design60 min
04

Persistence and repository patterns

Explain and apply SQLite, transactions, parameterised SQL, repository, migrations to a tested, privacy-safe solution.

  1. Persistence and repository patterns60 min
05

HTTP and API clients

Explain and apply HTTP methods/status, timeouts, retries, JSON, sessions, error mapping to a tested, privacy-safe solution.

  1. HTTP and API clients60 min
06

FastAPI application foundations

Explain and apply routes, schemas, dependency injection, validation, OpenAPI to a tested, privacy-safe solution.

  1. FastAPI application foundations60 min
07

Authentication and authorisation concepts

Explain and apply identity, password hashing, tokens, roles, least privilege to a tested, privacy-safe solution.

  1. Authentication and authorisation concepts60 min
08

pytest and test design

Explain and apply fixtures, parametrisation, mocks, integration tests, coverage, Arrange-Act-Assert to a tested, privacy-safe solution.

  1. pytest and test design60 min
09

Security, privacy and logging

Explain and apply secrets, validation, redaction, structured logs, OWASP basics, retention to a tested, privacy-safe solution.

  1. Security, privacy and logging60 min
10

Concurrency and background work

Explain and apply async/await, tasks, queues, idempotency, race conditions to a tested, privacy-safe solution.

  1. Concurrency and background work60 min
11

Deployment and operations

Explain and apply configuration, health checks, containers, process model, monitoring, backups to a tested, privacy-safe solution.

  1. Deployment and operations60 min
12

Capstone release

Explain and apply release criteria, versioning, documentation, evidence, demo to a tested, privacy-safe solution.

  1. Capstone release60 min

Access and progression

Know what the course requires.

The required capability matters; the learner does not have to personally own every device.

Who it is for

Aspiring developers, technical learners, career changers and practitioners seeking applied computing skills.

Hardware access

Personal 64-bit computer with 4 GB RAM and 20 GB free, or use the required device and software at a readiness-approved THNF centre.

Software and practical access

Course software is available through the text-first pack, an approved offline installer or a readiness-approved THNF centre.

Possible progression

Junior development, data, web, application-support or technical-project progression appropriate to the completed portfolio.

Progression is not a guarantee of employment or external certification.

Sierra Leone context

Mobile-first, low-data solutions for Sierra Leonean schools, traders, transport, agriculture, NGOs and SMEs using synthetic local names, districts and NLe values.

Skills in context

Career directions and next steps

These are realistic directions that the skills can support—not promises of employment, job titles or external certification.

  • Junior front-end developer
  • Web-content assistant
  • Freelance website builder
  • Junior software developer
  • Application-support assistant
  • Software-testing assistant
Possible progression pathways

Beginner to intermediate web developer · Programming and software engineering