Full-Stack Web App

Goonodoro

A Pomodoro timer with verified accounts, tracked focus sessions, and a public leaderboard.

Overview

Goonodoro is a full-stack Pomodoro web app with a plain HTML, CSS, and JavaScript frontend hosted on Vercel and a production Express API hosted on Railway. The backend handles authentication, email verification, session tracking, and leaderboard data backed by PostgreSQL on Neon.

Technical Stack

Frontend

HTML, CSS, JavaScript, Vercel

Backend

Node.js, Express, JWT, bcrypt

Database

PostgreSQL on Neon

Infrastructure

Railway, Resend, GitHub

Backend Features

Production API Surface

  • Auth Register, verify email, login, bcrypt password hashing, JWT sessions
  • Users Profile endpoint and unique username updates
  • Sessions Authenticated Pomodoro completion tracking
  • Leaderboard Public top-10 ranking without exposing email addresses
  • Security CORS allowlist, route rate limiting, environment-based secrets

What I Built

I implemented the Express server, PostgreSQL schema, Neon connection flow, Railway deployment configuration, environment documentation, and frontend integration. I also fixed production deployment issues around Railway proxy headers, moved email verification to Resend, and added the sign-up, login, lifetime-session, and leaderboard flows to the frontend.

Live App โ†— Frontend Repo โ†— Backend Repo โ†—