
A Java CLI city exploration app with JDBC-MySQL integration for browsing curated guides on attractions, dining, and accommodations with filtered search and CRUD operations.
Learning relational database design and SQL requires building a real application — textbook exercises don't teach the practical challenges of schema design, query optimization, and application-database integration. A city guide app provides enough complexity (multiple entities, relationships, search queries) to exercise these skills meaningfully.
I designed a CLI city guide with a normalized MySQL schema and Java JDBC connectivity, implementing full CRUD operations with parameterized queries. The DAO pattern separates database logic from the CLI interface, and Java OOP principles (encapsulation, inheritance, polymorphism) structure the venue type hierarchy.
Java provides the application layer with JDBC for database connectivity. The MySQL schema uses normalized tables for cities, categories, venues, and reviews with foreign key relationships. Parameterized PreparedStatements prevent SQL injection. The DAO pattern encapsulates all database operations behind clean interfaces. Search functionality supports multi-criteria filtering with dynamically constructed WHERE clauses.
Built a functional CLI city guide demonstrating relational database design, JDBC integration, and Java OOP patterns. The project covered the full database lifecycle: schema design, migration, CRUD operations, and query optimization. These foundational skills in database design and application architecture directly informed my approach to backend development in subsequent full-stack projects.

A cross-language text analysis tool implementing word probability calculation with stopword filtering in Java, Python, and JavaScript for comparative study.

An AI-powered interactive storytelling platform where users create unique characters, weave branching narratives, and explore adaptive story worlds in real time.

An all-in-one virtual events platform with live streaming, exhibitor booths, real-time chat, and attendee engagement tools built with Next.js and Stream.