Skip to content

A Full Stack application with Next.js 14 Frontend, Java and Python microservices, Kafka based Chat, Nginx load balancer and reverse proxy, OpenStreetMap, OpenAI ChatGPT and Jira integrations.

License

Notifications You must be signed in to change notification settings

cjakabos/portfolio-web

Repository files navigation

Web Development and Predictive Analytics Portfolio

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.

What's Inside?

  • 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:

Quick Start

Setup with Docker

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:

1. Machine learning system for Customer Segmentation


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,

The user is able to:

  • 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

The user is able to:

  • 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.

4. Maps

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

5. OpenAI

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.

6. Jira

Jira interface for communicating with the Jira API, to use it:

The user is able to:

  • Create/list/update/delete Jira ticket

7. Notes and Files

A service for creating personal notes and uploading personal files.

8. Chat

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

Optional API services

If OpenAI and Jira functionality is to be used, follow the instructions below:

OpenAI API key:

To be stored in the .env file in the frontend/react-apiview-app root directory in this format:

NEXT_PUBLIC_OPENAI_KEY==xxxxxxxxxxxxxx

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.

Certificates

Web Development Nanodegree certficiate Predictive Analytics for Business Nanodegree certficiate

About

A Full Stack application with Next.js 14 Frontend, Java and Python microservices, Kafka based Chat, Nginx load balancer and reverse proxy, OpenStreetMap, OpenAI ChatGPT and Jira integrations.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published