A complete web application that mimics the distinctive hand-drawn aesthetic of XKCD comics while providing full social platform functionality. Built for CSCI 4131 (Internet Programming).
Features
- User Authentication: Secure registration and login with bcrypt password hashing
- Post Management: Full CRUD operations for user posts
- Sorting Options: View posts by most recent or most liked
- Pagination: Efficient browsing through large post collections
- Light/Dark Mode: Theme toggle matching XKCD's visual style
- Custom Typography: Uses the 'xkcd-script' font for authentic styling
Technical Implementation
- Backend: Node.js with Express.js framework
- Templating: Pug (Jade) for server-side HTML generation
- Database: MySQL with async/await query patterns
- Security: bcrypt for password hashing, express-session for session management
- Connectivity: SSH tunnel support for secure database access
Architecture
The application follows MVC principles with:
- Express routes handling HTTP requests
- Pug templates rendering dynamic views
- MySQL database storing users and posts
- Session middleware managing authentication state
Database Schema
A relational MySQL schema with a users table for secure password storage, a posts table keyed to authors, and like/interaction tracking.
The project exercises full-stack fundamentals end to end: authentication, relational data modeling, and responsive UI.
