Table of Contents
The Insurance Company System is a comprehensive solution designed to manage customer information, policy creation, and customer requests using a powerful blend of REST and gRPC communication protocols. The project leverages a combination of Spring Boot, REST, gRPC, Lombok, and MongoDB to provide a seamless and user-friendly experience for both administrators and customers. Built on a microservices architecture, the project leverages the speed and efficiency of gRPC, combined with the familiarity of REST. This dynamic combination enables efficient and high-performance interactions between microservices while ensuring broad accessibility and easy integration for external clients.
-
Microservices Architecture: The system is designed as a collection of loosely coupled microservices, each focused on specific business functionalities. This architecture ensures independent deployment of services.
-
Domain-Driven Design (DDD): The project follows domain-driven design principles to align software design with the business domain, making the software more accurate and easier to maintain.
-
Query-First Approach: The system adopts a query-first approach, ensuring that data retrieval and presentation are optimized for efficient user experiences. This approach enhances the performance and responsiveness of customer interactions.
Key Domains of the system:
- Customer:
Customers interact with the system to view policies, make requests, and manage their information.
- Policy:
This domain focuses on policy management. Policies are created and viewed by Customers.
- Request:
The request domain enables customers to submit various types of requests to update personal details.
Microservices that access domains:
- Registration.
- Login.
- CreatePolicy.
- GetCustomers.
- GetPolicies.
- MakeRequest.
- CustomerPolicy. (to create both customers and policies)
Get started with the project
- Java 11 or higher
- MongoDB
- npm
npm install npm@latest -g
- Clone the repo
git clone [https://github.com/your_username_/Project-Name.git](https://github.com/MariamRaouf30/InsuranceCompany)
- Install NPM packages
npm install
(For Frontend) 3. Springboot Extension to run the application 4. Configure port connections 5. Start your application after building
The system is designed for scalability, adaptability and enhanced performance. It accommodates evolving business needs. Additional microservices can be seamlessly integrated to enhance functionality, keeping the system responsive to industry needs and customer expectations.
- ER Diagram
- Use Cases for the system
- Add Main Domains
- Connect to Database (MongoDB)
- Add Microservices.
- Frontend Project.
- Test project performance.
- RESTful API
- gRpc
Mariam Raouf - [email protected]
Project Link: https://github.com/MariamRaouf30/InsuranceCompany
List of resources found helpful.