Welcome to the Customer Platform! This project is a modular, secure, event-driven microservice built with a variety of modern technologies. It focuses on providing a seamless experience for managing customer interactions and data.
The Customer Platform is designed to handle customer data efficiently while ensuring security and scalability. It employs a microservices architecture, which allows for easy integration and maintenance. The platform is built using:
- Spring Boot: A framework that simplifies the development of Java applications.
- Kotlin: A modern programming language that is concise and expressive.
- Kafka: A distributed streaming platform that handles real-time data feeds.
- Liquibase: A tool for managing database changes.
- PostgreSQL: A powerful, open-source relational database.
- Keycloak: An identity and access management tool for securing applications.
For more details, visit our Releases section.
The Customer Platform utilizes the following technologies:
- Domain-Driven Design: A methodology that focuses on the core domain of the application.
- Gradle: A build automation tool used for dependency management.
- Kafka: For handling asynchronous messaging.
- Keycloak: For OAuth2-based authentication.
- Kotlin: As the primary programming language.
- Liquibase: For database version control.
- PostgreSQL: As the database solution.
- Spring: The core framework for building the application.
- Spring Security OAuth2: For secure API access.
To get started with the Customer Platform, follow these steps:
-
Clone the repository:
git clone https://github.com/PatoOnichanKn/customer-platform.git
-
Navigate to the project directory:
cd customer-platform -
Build the project:
./gradlew build
-
Run the application:
./gradlew bootRun
-
Access the application: Open your browser and navigate to
http://localhost:8080. -
Download and execute the latest release: Visit the Releases section to download the latest version.
The Customer Platform offers several features:
- Secure Authentication: Using Keycloak for OAuth2-based security.
- Event-Driven Architecture: Leverage Kafka for handling real-time data processing.
- Modular Design: Each component can be developed and maintained independently.
- Database Management: Liquibase ensures that database changes are tracked and managed.
- Scalability: Built to handle increased loads and additional services as needed.
After setting up the application, you can interact with it through the REST API. Below are some example endpoints:
-
Get all customers:
GET /api/customers
-
Get a customer by ID:
GET /api/customers/{id}
-
Create a new customer:
POST /api/customers Content-Type: application/json { "name": "John Doe", "email": "john.doe@example.com" }
-
Update a customer:
PUT /api/customers/{id} Content-Type: application/json { "name": "Jane Doe", "email": "jane.doe@example.com" }
-
Delete a customer:
DELETE /api/customers/{id}
For more detailed API documentation, please refer to the API Documentation.
We welcome contributions! If you would like to contribute to the Customer Platform, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with clear messages.
- Push your changes to your forked repository.
- Submit a pull request.
Please ensure that your code adheres to the project's coding standards and includes appropriate tests.
This project is licensed under the MIT License. See the LICENSE file for details.
For questions or feedback, feel free to reach out:
- Email: your-email@example.com
- GitHub: PatoOnichanKn
Thank you for your interest in the Customer Platform! We look forward to your contributions and feedback.
For further updates and releases, check the Releases section regularly.