Tarpaulin REST API
A Canvas-inspired REST API for course and assignment management, built with Python/Flask and deployed to Google Cloud. The API models users, courses, assignments, and submissions across a structured set of endpoints, enforcing role-based access control (admin, instructor, student) at each route via Auth0 JWT verification. Designed with consistency in mind: all responses follow predictable JSON schemas, error codes are used correctly, and relationship rules are enforced server-side (e.g., only an instructor assigned to a course may create assignments for it). Cloud Datastore provides persistence. The project emphasized clean resource modeling and writing an API that behaves the way a consumer would expect — no surprising status codes, no ambiguous error messages.