- Swagger URL:
{{protocol}}://{{hostname}}:{{port}}/swagger-ui/index.html - OpenAPI JSON Docs:
{{protocol}}://{{hostname}}:{{port}}/v3/api-docs
- Update Bruno API Documentation from SpringDoc OpenAPI JSON files.
- Migrate the URI paths with
/apiprefix
- Migrate the URI paths with
- Implement integration with a third party API service using Java's HttpClient
- Test Spring Boot Virtual Threads throughput using a database connection
- Migrate the ASP.NET Core Web API project — https://github.com/manojbaishya/dojo.api/
- Implement Unit and Integration tests for new models in org.dojo.spring.department.billing.Transaction, org.dojo.spring.todo, .
- Implement performance tests in k6 for the existing models — Department and Transaction.
- Implement JWT OAuth 2.0 Authentication and Authorization with RBAC — both Token and Resource Servers in this project
- Implement Checker Framework instrumentation on the code — Follow PR typetools/checker-framework#7055
For further reference, please consider the following sections:
- Official Apache Maven documentation
- Spring Boot Maven Plugin Reference Guide
- Create an OCI image
- Spring Boot Actuator
- Spring Data JPA
- Validation
- Spring Web
The following guides illustrate how to use some features concretely:
- Building a RESTful Web Service with Spring Boot Actuator
- Accessing Data with JPA
- Validation
- Building a RESTful Web Service
- Serving Web Content with Spring MVC
- Building REST services with Spring
Due to Maven's design, elements are inherited from the parent POM to the project POM.
While most of the inheritance is fine, it also inherits unwanted elements like <license> and <developers> from the
parent.
To prevent this, the project POM contains empty overrides for these elements.
If you manually switch to a different parent and actually want the inheritance, you need to remove those overrides.
- Design a simple URL shortening service.
- Design a basic chat application.
- Design a file storage system.
- Design a simple social media platform.
- Design a simple search engine.
- Design a simple e-commerce website.
- Design a basic ride-sharing system.
- Design a basic video streaming service.
- Design a simple recommendation system.
- Design a basic food delivery app.
- Design a parking lot management system.
- Design a simple music streaming service.
- Design a basic online ticket booking system.
- Design a simple note-taking application.
- Design a weather forecasting system.
- Design a basic email service.
- Design a file synchronization system.
- Design a simple calendar application.
- Design a basic online quiz platform.
- Design a user authentication system.
- Design a URL-shortening service like bit.ly.
- Design a distributed key-value store like Redis.
- Design a scalable social network like Facebook.
- Design a scalable recommendation system like Netflix.
- Design a distributed file system like Hadoop's HDFS.
- Design a real-time messaging system like WhatsApp.
- Design a web crawler like Google.
- Design a distributed cache like Memcached.
- Design a content delivery network (CDN) like Cloudflare.
- Design a scalable search engine like Google.
- Design a ride-sharing system like Uber.
- Design a video streaming service like YouTube.
- Design an online food delivery system like Zomato.
- Design a collaborative document editing system like Google Docs.
- Design an e-commerce platform like Amazon.
- Design a recommendation system for an online marketplace.
- Design a fault-tolerant distributed database system.
- Design a scalable event-driven system like Twitter.
- Design a scalable photo-sharing platform like Instagram.
- Design a distributed task scheduling system.
These patterns provide various object creation mechanisms, which increase the flexibility and reuse of existing code.
- Factory Method
- Abstract Factory
- Builder
- Prototype
- Singleton
These patterns explain how to assemble objects and classes into larger structures while keeping these structures flexible and efficient.
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
These patterns are concerned with algorithms and the assignment of responsibilities between objects.
- Chain of Responsibility
- Command
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor