PILY CT
ALL PROJECTS

Data Fixer.

A web app where signed-in users upload a CSV, preview it with incomplete rows removed, and download the cleaned file.

ROLE
Full-Stack Developer: design, frontend, API
TEAM
Solo
DATE
Sep 2024 to Oct 2024
TRACK
Full-StackData
STACK
React, TypeScript, Python, Flask, SQLite

FIG. 03A ARCHITECTURE

  • React + TypeScript, frontend. Connects to Flask API (HTTPS + JWT).
  • Flask API, backend. Connects to SQLite (users) (SQL), pandas cleaner (CSV UPLOAD). See note 1.
  • SQLite (users), storage.
  • pandas cleaner, backend. Connects to Temp CSV on disk (WRITE). See note 2.
  • Temp CSV on disk, storage. See note 3.

NOTES

  1. Decision

    I put every CSV route behind Flask-JWT-Extended, and the React client sends the token as a Bearer header. The API stays stateless, and users live in one SQLAlchemy table with Werkzeug-hashed passwords.

  2. Trade-off

    The only cleaning rule is pandas dropna(): any row with a missing value is removed. It's predictable and easy to show in the preview table, but one empty cell costs a whole row, and users can't fill values or pick columns.

  3. What I got wrong

    The server writes every user's result to the same temp_cleaned_data.csv, so two people cleaning at once overwrite each other's file. Next time I'd stream the CSV back in the response or key the file by user and request.

NEXT PROJECTQuotes Scraper

PROJECT 05 / 08