In the Advanced Java & Spring Framework course, you've learned about many advanced software development concepts, such as dependency injection and inversion of control. You also spent a good amount of time learning about advanced build tools, ORMs, and security implementations. These, along with various programming paradigms like AOP and reactive programming, were applied in practice, for example in your customer website and photo search projects.
If you've followed through the whole course diligently and put in the concentration and hours of training necessary, then you've certainly come a long way, and you've learned a great deal about programming with Java and utilizing the Spring Framework.
Congratulations on your success, this is a monumental moment!!
From here on out, the best way to continue to learn is to build more projects. You've covered all the basics and many advanced programming concepts, but there's always more to learn!
Capstone Concepts
To put the final seal of completion on your course progress, your next task will be to build a capstone project. Your capstone will be a larger-scale Spring project that you'll build by yourself from scratch.
Before providing any suggestions, imagine a project that can encapsulate all of your Spring knowledge: a secure, web-based application that stores data in a database, interacts with a third-party API, and includes proper testing.
- Spring Data
- Spring Web / WebFlux
- Spring MVC
- Spring Security
- Spring Test
- Thymeleaf
- Third-Part API Integration
- Caching
You can push this to the limit, try to utilize new packages or frameworks that you have never used with before. Maybe put an OAuth 2.0 login system in place, or consume an OAuth 2.0 secured API. The idea is to create a real, production-ready web application that is all you, and clearly shows what you are capable of.
Info: As a developer, you'll always need to learn how to work with new packages that you haven't worked with before. One of the most important skills that you'll train by working through your capstone project, is being able to read the documentation of your package and find other learning resources online that can help you get ahead.
Java + Spring Boot Capstone Ideas
What project should you build as your capstone? Choose your own adventure!
The best idea for building your capstone project is your idea. Choose a project that you personally want to build. You might have a website idea floating around your brain for a long time. This is the best time to start working on it! Or maybe there's a task you would like to automate, some habit you want to make part of your daily life? Can you build a web app around that idea?
Choosing a project that you are personally interested in will make sticking with your project much easier, also when it gets daunting. It will also help to drive you to keep exploring and learn new and additional aspects of Java/Spring, simply because you will need this or that to make your project work the way you envision it.
To the point: If you have an idea for an app, make that your capstone project!
However, before you dive too deep into a project that is too complex, ask yourself what the minimum viable product of your idea would be. Give it some time to think it through. What's the main functionality, how could you build that in the easiest way? Start there. Once you finish the minimal version, you can always keep building on it to make it more awesome.
Other Capstone Suggestions
If you don't yet have an idea for a project you would want to work on, here are a couple of ideas for your inspiration:
- Java Capstone Revisit / Expansion: If you enjoyed building your Java capstone project and feel the idea could be further improved upon using your new skills, consider completely re-writing a new enhanced version using Spring Boot.
Or, if your project contains a lot of well-thought-out functionality and features, consider simply expanding it with a web interface (either integrated, or a separate, uncoupled project), and adding new features that tie into the evolution.
-
Portfolio Site: Build a Portfolio app that you can use to display all the projects you built in this course, as well as contact information, integrate your GitHub portfolio via their API, etc.
-
Future-Job Projects: Look at Job Postings of companies you are interested in working for, and figure out what projects they are working on. Build something that could help them
-
Clones: Build a clone of your favorite site on the web. Maybe you love Instagram? Build an Instagram clone! Etc.
Project Idea Lists On The Web
To make sure you drown in a flood of options, here is another page that lists a variety of ideas for Java web development projects. The sky is the limit!
Data-Flair's 37 Java Project Ideas
Also head over to Discord to read and post about possible project ideas, and maybe find a collaborator.