Welcome to my dynamic portfolio, showcasing cutting-edge projects from my Web Development and Predictive Analytics Nanodegrees. This repository is packed with full-stack solutions, ranging from microservices to interactive front-end interfaces and robust data analytics models.
- Microservices Architecture: Dive into backend API services crafted during my Nanodegree. More about backend services: cloudapp, petstore, vehicles-api, jira-proxy.
- Load Balancer and Reverse Proxy: Utilize Nginx to efficiently distribute traffic among servers and enhance performance and reliability of applications. Read more.
- Interactive Next.js 14 Frontend: Experience the sleek Next.js interface designed to interact seamlessly with the backend services. Explore the frontend.
- Advanced ML Pipeline: Leverage my Python-based machine learning pipeline for dynamic customer segmentation, developed during my Predictive Analytics Nanodegree. See ML details.
- Integrated External APIs: Enhance functionality with third-party services like OpenAI and Jira through customized proxy APIs to navigate CORS issues. Details on API integration.
- Real-Time Kafka Chat: Engage with the Kafka-powered chat application, demonstrating real-time messaging capabilities. Chat interface.
- Efficient Logging and CI/CD: Implement robust logging with Log4j and streamline deployments using Jenkins. Learn about CI/CD processes.
Example view with ML pipeline and other tabs:
Setup and start databases and esential services with docker-compose:
docker-compose -f docker-compose-infrastructure.yml up -d
Build and start the Java based services, the Python based ml-pipeline and the Next.js based frontend:
docker-compose -f docker-compose-app.yml up -d
Runs the app in the production mode.
Open http://localhost:5001 to view it in your browser.
If everything is correctly started, you should see a login page with optional Dark Mode:
And you should be able to register and log in, after starting the backend services, cloudapp is a must, the rest is optional, and see the current front-end of the api integrations from the services above:
MLOps interface for Customer Segmentation API, the user is able to:
- Add new customer data point to the database.
- Sample reference database with user specified samples.
- Sample reference database with predefined 10-20-50-100-200 amount of samples. All these steps will retrigger the segmentation process and then the pictures and tables will update with the new results.
View results:
- Pictures: correlation between parameters and the different segments
- Table: current db from postgres.
2. Shop interface for Cloudapp web store REST API,
- Create new items.
- Add existing items to the cart.
- See and clear the cart.
- Submit cart and check order history.
Shop API documentation:
3. Pet Store interface for the Pet Store's REST API
- Add new customer.
- Add a new Pet to existing customers.
- Add new employees with skills and schedules.
- Check availability based on skills and schedules.
- Plan a new schedule for an employee and assign it to a pet.
Map interface for integrating Open Street Map with the Vehicle location service's REST API. The user is able to:
- Click on the map to add new vehicle locations.
- Click on existing locations and check basic info and delete the location.
Vehicels API documentation
OpenAI interface for communicating with the OpenAI API, the user is able to:
- Send a prompt to ChatGPT and receive a response..
- Send a prompt to DallE and receive an image response.
Jira interface for communicating with the Jira API, to use it:
The user is able to:
- Create/list/update/delete Jira ticket
A service for creating personal notes and uploading personal files.
- Notes API documentation
- Files API documentation
A Kafka based chat service, the user is able to:
- Create new chat rooms, furthermore share and enter chat room id
- Talk to other users in chat rooms
If OpenAI and Jira functionality is to be used, follow the instructions below:
To be stored in the .env file in the frontend/react-apiview-app root directory in this format:
NEXT_PUBLIC_OPENAI_KEY==xxxxxxxxxxxxxx
Jira API key, how to register and how to get an API key
Frontend: Add .env file at frontend/react-apiview-app root directory in this format:
NEXT_PUBLIC_JIRA_DOMAIN = 'https://xxxx.atlassian.net'
NEXT_PUBLIC_JIRA_KEY = Y3......2edd (note: no single quotation)
NOTE: the next-frontend Docker image needs to be rebuilt after editing the .env file.
Web Development Nanodegree certficiate Predictive Analytics for Business Nanodegree certficiate