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
-- Users table with secure password storage
-- Posts table with author relationships
-- Like/interaction tracking
A practical demonstration of full-stack web development fundamentals including authentication, database design, and responsive UI implementation.
