Seal Udokang

Junior Software Engineer building useful web apps with care.

I build practical projects across TypeScript, JavaScript, Python, databases, APIs, auth, deployment, and automation.

Full-Stack Projects Python Automation Project-Driven Learning

Selected Projects

Household Shopping App

Full-Stack

A mobile-first shopping app for shared households, built to make grocery planning, item tracking, and shopping sessions simple.

TypeScript Next.js 15 React 19 Supabase Postgres Vercel
Supabase auth
Household membership
Server Actions
RLS-backed data

RepLog Web App

Static Web App

A fast, personal gym tracker for structured strength training, with workout templates, set logging, and browser-based persistence.

Vanilla JS IndexedDB Bootstrap GitHub Pages
No account required
IndexedDB storage
Progression guidance

BlogBox

Server-Rendered

A minimal blog web app with server-rendered pages for creating, viewing, editing, and deleting posts with optional image uploads.

Node.js Express EJS Multer
CRUD routes
Image uploads
Server templates

ExamReady

Frontend

A static T Level study hub with guides, task walkthroughs, past paper resources, FAQs, and a persistent theme toggle.

HTML CSS Bootstrap Vanilla JS GitHub Pages
Search and filters
PDF previews
Responsive layout

Developer Roadmap Validator

API Project

A learning tool that compares developer skills against curated roadmaps and uses public API evidence to surface skill gaps.

Node.js Express EJS GitHub API Stack Exchange API PDFKit
Rate limiting
TTL caching
PDF reports

Movie Collection Web App

Flask

A Flask app for building a ranked film collection by searching TMDB, saving films locally, and updating ratings and reviews.

Python Flask SQLAlchemy SQLite WTForms TMDB API
API search
SQLite storage
Ranking workflow

Data Entry Automation

Automation

A Python automation project that scrapes property listing data and submits address, price, and link details into a Google Form for spreadsheet analysis.

Python Selenium BeautifulSoup Google Forms Google Sheets
Web scraping
Browser automation
Spreadsheet workflow

Featured: Household Shopping App

Architecture Overview

A mobile-first Next.js app for small families or shared homes. The app uses Server Components for initial data, Server Actions for mutations, and Supabase for auth, Postgres storage, row-level security, household membership, shopping sessions, item memory, and seed data.

Features

Create or join a household
Add, update, and clear shopping items
Group items into active shopping sessions
Use Supabase Auth and RLS policies
Share data safely between household members
Deploy as a Vercel-friendly full-stack app
Validate behaviour with lint and typecheck scripts
Keep the interface lightweight and mobile-first

What I Learned

  • Building authenticated flows with Supabase and Next.js App Router
  • Designing database tables around households, memberships, sessions, and reusable item memory
  • Using Server Actions for form-driven mutations without adding a custom API server
  • Thinking through permissions with row-level security rather than trusting the client
  • Keeping a production-style project maintainable with TypeScript, linting, and typechecking scripts

Skills & Tools

Languages

Python
Flask apps, automation scripts, API integrations, Kivy mobile learning
JavaScript
Static apps, Express servers, EJS views, browser storage, API consumption
TypeScript
Next.js and React project structure in Household Shopping
SQL
SQLite and Postgres-backed project data

Backend

Flask
Movie Collection app with SQLAlchemy, WTForms, and TMDB API integration
Node.js
Express apps, server-rendered pages, API-backed tools
Express.js
BlogBox routes, uploads, templating, and Developer Roadmap Validator
Next.js
App Router, Server Components, and Server Actions in Household Shopping

Frontend

HTML/CSS
Semantic markup, CSS variables, grid, flexbox, responsive layouts
Bootstrap
ExamReady, RepLog, and Movie Collection interfaces
React
React UI in the Household Shopping App

Database

SQLite
Local persistence in the Movie Collection Flask app
PostgreSQL
Supabase Postgres with household data and row-level security
IndexedDB
Browser-side workout persistence in RepLog Web App

Tools

Git
Repository organisation, GitHub Pages, Vercel deployments
pytest
Python test tooling for learning projects
Postman
Manual API testing and request debugging
Automation
Selenium, BeautifulSoup, SMTP, Sheety, Spotify, and external API projects

How I Build

  • Start from a real user flow, then choose the simplest architecture that supports it
  • Use README files, setup notes, and project structure to make work understandable later
  • Keep frontend interactions responsive and practical, especially on mobile
  • Use database-backed permissions where shared data or authentication is involved
  • Integrate external APIs carefully, with clear environment variables and setup notes
  • Prefer small, complete projects that show a working path from idea to deployment

Journey

2026

Continuing Growth

Strengthening full-stack skills through Household Shopping, RepLog, and project documentation.

Built authenticated and database-backed web projects
2025

Locked In Self Directed Learning & Personal Branding

Built portfolio projects, Python automations, Flask practice apps, and Express projects while developing stronger fundamentals.

Expanded from learning exercises into deployed apps
2024

First Reset

Reassessed goals and restructured learning path

2023

University Studies

Started university studies in Computer Science

2022

Finished High School

Started to understand the importance of continuous learning and self-improvement

2020

First Programming in-person bootcamp

Completed a comprehensive programming bootcamp covering web-development

Milestone: Completed front-end basics
2018

Deep Dive into web development

Started to learn HTML, CSS, and JavaScript in depth

2016

Initial Interest in Programming

Started High School, got interested in programming and started learning basics

Get In Touch

Looking for my first software engineering role. Open to junior, apprenticeship, and placement opportunities where I can contribute to real products, keep learning, and grow with a strong engineering team.