Currency exchange platform in market exchange model where user may submit their currency exchange offers. This system facilitates peer-to-peer trading by matching buy and sell orders across different currency pairs, utilizing an event-driven architecture for high performance and scalability.
Important
Project is in a pre-alpha state, and only suitable for use by developers
- Backend Services: Java (v26), Spring Boot (v4.0.5)
- Database: PostgreSQL
- Event Streaming Platform Kafka + Zookeeper
- Containerization & Orchestration: Docker, Docker Compose
- Identity and Access Management: Keycloak
- Frontend: Angular (v21), TypeScript, NgRx library
- Testing:
- JUnit (Java)
- Other Tools:
- Liquibase (database migrations)
- Prettier, ESLint (Frontend linting/formatting)
- Clone the repository:
git clone https://github.com/tomasz-franek/exchange-platform.git
cd exchange-platform
mvn clean install- Run with Docker Compose ( run the services in detached mode ) :
docker-compose up -d
# Or to rebuild:
docker-compose up --build -dThis command starts the following components:
-
http://localhost:4200 - Client application
- Created client users:
- Login: client1@exchange.com, Password: password
- Login: client2@exchange.com, Password: password
- It is also possible to register a new user on the Keycloak login page.
- Created client users:
-
http://localhost:4100 - Admin application
- Created admin users:
- Login: admin@exchange.com Password: password
- It is also possible to promote a registered client login on the Keycloak admin after logging into the admin console.
- Created admin users:
-
http://localhost:8050 - Keycloak admin console
- Login: admin Password: admin
-
http://localhost:8000 - Kafka Magic - Topic Explorer
- Register new Kafka cluster connection:
- Cluster Name: exchange
- Bootstrap Servers: localhost:9092
- Register new Kafka cluster connection:
Pull Requests are welcome. For significant changes, please open an issue first to discuss what you would like to change. Make sure to update tests as appropriate. Please read our Contribution Guidelines for more information on how to get involved.
Exchange platform is licensed under a MIT license.