A project that integrates Spring Boot, PostgreSQL, and AWS S3 Kafka Spark Cassandra to manage employee data
Key Features:
- 🗄️ PostgreSQL Database Integration: Employee and department data are stored in PostgreSQL, with data imported from CSV files for easy initialization.
- 🖼️ AWS S3 Image Storage: Employee images are stored in AWS S3 for secure and scalable image storage.
- 📋 Web Interface: Displays employee details (name, manager name, salary, commission, department) with a JOIN operation, allowing for easy management and viewing.
- Data comes constantly from cassandra
To get a local copy up and running, follow these steps.
Ensure you have the following software installed:
- Java 17+
- Maven
- apache-cassandra-3.11.10
- kafka_2.12-3.9.0
- spark-2.4.5-bin-hadoop2.7
- AWS CLI (for AWS S3 integration)
- PostgreSQL
- Clone the repository:
git clone https://github.com/FatihArslan-cmd/Kafka-Spark-Cassandra-Expense-Tracker.git
- Navigate to the project directory:
cd demo
- Install dependencies:
mvn clean install
- Run the project:
mvn spring-boot:run
- Create an S3 bucket and upload sample images from this link images.
- Configure your AWS credentials using
aws configure
.
- Import employee and department data from the provided CSV files into PostgreSQL from data.
- [Follow the link](https://github.com/FatihArslan-cmd/DataGenerator-Kafka-)
Add the following keys to your application.properties
file:
aws.accessKeyId=""
aws.secretAccessKey=""
aws.region=""
aws.bucketName=""
spring.cassandra.contact-points=
spring.cassandra.port=
spring.cassandra.keyspace-name=
spring.cassandra.local-datacenter=
spring.cassandra.schema-action=none
spring.datasource.url=""
spring.datasource.username=""
spring.datasource.password=""
Once the project is running:
- You gotto start kafka server spark submit cassandra server and data generator [Follow the link](https://github.com/FatihArslan-cmd/DataGenerator-Kafka-)
- Open your browser and navigate to http://localhost:8080 to view the employee data
- Java 17
- Spring Boot
- PostgreSQL
- AWS SDK for Java (for S3 integration)
- Maven (for build management)
Additionally, Apache Kafka, Apache Spark, and Cassandra are configured to run in an environment with Java 8. These components should be executed under a dedicated user profile set up with Java 8 on Ubuntu. Meanwhile, Spring Boot applications, which require Java 17, should be executed under a separate user profile configured with Java 17 to ensure compatibility.
- Java 17
- Spring Boot
- PostgreSQL
- AWS SDK for Java (for S3 integration)
- Maven (for build management)
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Fatih Arslan - Software Engineer