Skip to content

CloudApp - A Full Stack application with Next.js 14 Frontend (App shell and Micro frontends), Java and Python microservices, Kafka based Chat, Nginx load balancer and reverse proxy, OpenStreetMap, OpenAI ChatGPT and Jira integrations. MongoDB and Postgres database foundation.

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?

  • CloudApp - Interactive Next.js 14 App Shell and Micro Frontend: Experience the sleek Next.js interface designed to interact seamlessly with the backend services. Explore the frontend.
    • A micro frontend setup with an app shell solution to enable independently deployable front-end modules, improving scalability and maintainability. Check details
  • 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.
  • 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 customer segmentation pipeline and other tabs:

Quick Start

Setup with Docker

Note: minimum 16 GB memory is needed to make sure all services can run.

brew install docker
brew install docker-compose

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:https://localhost:5001 to view it in your browser. For development mode check instructions here.

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 auto trigger the whole customer segmentation process and generate the latest segmentation plots with these options:

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

View results:

  • Pictures: correlation between parameters and the different segments.
  • Table: current list of customers from postgres db.

The module is built as Micro Frontend:

  1. Left side main CloudApp-Shell as App Shell using the MLOps micro frontend:
    http:https://localhost:5001/mlops
  2. Right side module federated MLOps micro frontend:
    http:https://localhost:5005

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 module is built as Micro Frontend:

  1. Left side main CloudApp-Shell as App Shell using the Petstore micro frontend:
    http:https://localhost:5001/petstore
  2. Right side module federated Petstore micro frontend:
    http:https://localhost:5006

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 with vehicle locations

The module is built as Micro Frontend:

  1. Left side main CloudApp-Shell as App Shell using the Maps micro frontend:
    http:https://localhost:5001/maps
  2. Right side module federated Maps micro frontend:
    http:https://localhost:5002

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.

The module is built as Micro Frontend:

  1. Left side main CloudApp-Shell as App Shell using the OpenAI micro frontend:
    http:https://localhost:5001/openai
  2. Right side module federated OpenAI micro frontend:
    http:https://localhost:5004

6. Jira

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

The user is able to:

  • Create/list/update/delete Jira ticket
  1. Left side main CloudApp-Shell as App Shell using the Jira micro frontend:
    http:https://localhost:5001/jira
  2. Right side module federated Jira micro frontend:
    http:https://localhost:5003

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:

Comment out this in the docker-compose-app.yml file in root directory:

NEXT_PUBLIC_OPENAI_KEY: sk-za-------YOUR-API-KEY------8Ie

Comment out these in the docker-compose-app.yml file in root directory:

NEXT_PUBLIC_JIRA_DOMAIN: 'https://your-jira-instance.atlassian.net'
NEXT_PUBLIC_JIRA_KEY: Y3NhYmFqYWthYm-------YOUR-API-KEY------SDA9REUzRjY4N0M=

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

CloudApp - A Full Stack application with Next.js 14 Frontend (App shell and Micro frontends), Java and Python microservices, Kafka based Chat, Nginx load balancer and reverse proxy, OpenStreetMap, OpenAI ChatGPT and Jira integrations. MongoDB and Postgres database foundation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published