Track
Explore projects that dive deep into Java’s core concepts, object-oriented principles, and unique features like multithreading, memory management, and JVM optimizations. Build real-world applications while learning the best practices Java has to offer!
Start here
Create a simple engine for text-based adventure games. Users can navigate rooms, interact with objects, and solve puzzles defined in simple configuration files (e.g., JSON or plain text). Focus on object-oriented design to represent locations, items, and player actions.
Sign in to track progress
Basic
2 projectsCreate a simple engine for text-based adventure games. Users can navigate rooms, interact with objects, and solve puzzles defined in simple configuration files (e.g., JSON or plain text). Focus on object-oriented design to represent locations, items, and player actions.
Build a utility application (console or simple GUI using Swing/JavaFX) that converts between various units (e.g., length, weight, temperature, currency). Fetch currency exchange rates from a public API.
Intermediate
3 projectsDevelop a system to manage books in a library. Allow adding, searching, borrowing, and returning books. Store the library data persistently in files (e.g., CSV or JSON). Implement user roles (librarian, member).
Create a tool that scrapes headlines and summaries from predefined news websites. Use a library like Jsoup for HTML parsing. Store the aggregated news locally and display it.
Build a command-line tool or a simple application that takes a Markdown file as input and converts it into an HTML file, supporting basic Markdown syntax like headings, lists, bold, italics, links, and code blocks.
Advanced
3 projectsDevelop a web crawler that starts from a seed URL and recursively explores links found on pages up to a certain depth. Use multiple threads to fetch and parse pages concurrently, improving crawling speed. Ensure politeness by respecting robots.txt and adding delays.
Build a mini ORM framework that can map Java objects to relational database tables. Implement basic functionalities like saving objects to the database, retrieving objects by ID, and performing simple queries based on object fields using Java Reflection.
Build an application that fetches real-time (or near real-time) stock data from a financial API, displays it in a dashboard (could be console, Swing/JavaFX, or simple web UI using Spring Boot), and allows users to set alerts for specific price movements.
Expert
2 projectsImplement a simple distributed task queue using a message broker like RabbitMQ or Redis Pub/Sub. Create producer components that enqueue tasks (e.g., image resizing, email sending requests) and consumer components (workers) running potentially on different machines that dequeue and process these tasks.
Develop a simple Java agent using the Java Instrumentation API (`java.lang.instrument`) to perform basic profiling. For example, measure the execution time of specific methods by injecting bytecode at class loading time.