Workflow Application

A web application to provide full workflow access and server-side backend to a Chrome extension.

Overview

This web application works hand-in-hand with a chrome extension to provide the database, data visualisation, and editorial aspect of the workflow tool for information gathering and editing. Currently it is aimed at policy professionals but could easily be changed to serve any profession reliant on information gathering from the web. While the Chrome extension makes data collection seamless, this web application provides the microservices necessary to run it. Additionally, it provides a robust workspace for actions that need more attention, such as data visualisation, editorial workflow, etc. I am using this part of the project to set up unit tests using pytest for the different utility functions used by the API, such as notification, database executions, etc.

Goals

Learning Objectives

  • Setting up unit tests
  • Practice robust and secure API creation
  • Practice database modeling and schemas

Practical Objectives

  • The necessary microservices for the Chrome extension
  • A robust ediorial workflow

Implementation Details

Backend Architecture

Built with Flask framework using blueprints for modular design. Implements SQLAlchemy ORM for database operations with migration support via Alembic.

Frontend Design

The UI is using the same CSS as was written by myself for the chrome extension. Jinja2 templates provide server-side rendering with minimal JavaScript for enhanced interactions.

Deployment Infrastructure

Deployment on a VPS served with the Gunicorn HTTP server and routed with NGINX. Data is served throught a MariaDB instance.

Development Progress

Status

In Progress

Start Date

2025-10-08

Features

User authentication Completed
Secure rate-limited API Completed
Schemas In Progress
Unit tests Planned
Content editing Completed
Editorial workflow In Progress