Skip to content

About

A full-stack microservices web application built with React, Django, and MongoDB. Features secure authentication, AI sentiment analysis for dealership reviews, and automated CI/CD pipelines. Containerized with Docker and deployed via Kubernetes as the capstone project for the IBM Full-Stack Software Developer Professional.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Β 
Β 

Repository files navigation

🚘 Full-Stack Dealership Review Web Application

The complete implementation of a microservices-oriented web application, featuring React, Django, MongoDB, and deployed via Kubernetes with automated CI/CD pipelines.

React Django Docker Kubernetes GitHub Actions
MongoDB SQLite Container Registry
IBM Certification IBM Skills Network Status


πŸ“Œ Project Overview

This repository contains the complete implementation of a full-stack dealership review web application, developed as the final capstone project for the IBM Full-Stack Software Developer Professional.

The project is a showcase of end-to-end software engineering practices. It goes beyond simple web development by integrating a robust REST API backend, a dynamic frontend, dual-database management, continuous integration workflows, and cloud-native Kubernetes deployment.


🧱 Microservices Architecture

The application is structured around a decoupled, microservices-oriented architecture:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  React Frontend β”‚ ────> β”‚  Django Backend β”‚ ────> β”‚ Ext. Sentiment  β”‚
β”‚      (SPA)      β”‚ <──── β”‚   (REST APIs)   β”‚ <──── β”‚ Analysis Engine β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                   β”‚
                                   β–Ό
                          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                          β”‚ MongoDB & SQLiteβ”‚
                          β”‚   (Databases)   β”‚
                          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
graph LR
    React(["βš›οΈ React Frontend (SPA)"])
    Django["🐍 Django Backend (REST APIs)"]
    Sentiment["🧠 Ext. Sentiment Analysis Engine"]
    DB[("πŸ—„οΈ MongoDB & SQLite (Databases)")]

    React <-->|"HTTP Requests / JSON"| Django
    Django <-->|"API Calls"| Sentiment
    Django -->|"Query / Update Data"| DB

    style React fill:#e1f5fe,stroke:#0288d1,stroke-width:2px,color:#000
    style Django fill:#e8f5e9,stroke:#388e3c,stroke-width:2px,color:#000
    style Sentiment fill:#f3e5f5,stroke:#8e24aa,stroke-width:2px,color:#000
    style DB fill:#fff3e0,stroke:#f57c00,stroke-width:2px,color:#000
Loading

✨ Key Features

β€’ πŸ” Secure User Authentication: Complete login, logout, and registration workflows managed via SQLite.

β€’ 🚘 Dealership Locator: Browse and filter nationwide dealerships by state.

β€’ πŸ“ Dynamic Review System: Users can add, read, and manage reviews for specific dealerships.

β€’ 😊 AI Sentiment Analysis: Automatic parsing of user reviews to determine positive, neutral, or negative sentiment.

β€’ πŸ“¦ Fully Containerized: Backend services packaged using custom Dockerfiles.

β€’ πŸš€ Cloud-Native Deployment: Hosted and orchestrated using IBM Skills Network Kubernetes Clusters.


πŸ› οΈ Core Tech Stack

Category Technologies Used Purpose
Frontend UI React, JavaScript (ES6+), HTML5/CSS3 Single Page Application (SPA) client interface
Backend API Django, Django REST Framework, Python 3.12 RESTful routing, backend logic, and API endpoints
Databases MongoDB, SQLite Document store for reviews; Relational DB for auth
DevOps & Cloud Docker, Kubernetes, GitHub Actions, IBM Cloud Containerization, orchestration, and CI/CD automation

πŸ”„ CI/CD Pipeline & DevOps

This repository enforces strict code quality and automated deployment pipelines:

β€’ Continuous Integration: A GitHub Actions workflow (.github/workflows/main.yml) runs automatically on push and pull_request to the main branch.

β€’ Automated Linting: Python code is checked via Flake8, and JavaScript code is verified via JSHint, preventing non-compliant code from being merged.

β€’ Container Registry: The backend environment is packaged into a Docker image, containing a custom entry point for database migrations and static files, which is then pushed to the IBM Cloud Container Registry.

β€’ Kubernetes Orchestration: The application is deployed using declarative Kubernetes manifests (server/deployment.yaml) with port-forwarding configured for lab access.

β€’ Merge Protection: Blocks pull requests and prevents non-compliant code from being merged if automated continuous integration checks fail.


🐳 Containerization

β€’	Backend containerized using Docker.
β€’	Custom Dockerfile featuring a Python base image, dependency installation, and an entry point for migrations and static files.
β€’	Image built and pushed to the IBM Cloud Container Registry.

☸️ Kubernetes Deployment

β€’	Application deployed using a declarative Kubernetes Deployment manifest (server/deployment.yaml).
β€’	Port forwarding used for access within the lab environment.
β€’	The live deployment URL is provided in: deploymentURL.txt

πŸ“Έ Visual Proof

The following screenshots validate the end-to-end implementation of the application, from CI/CD automation to database management and microservice integration.

1. Automated CI/CD Pipeline
Demonstrates the GitHub Actions workflow successfully executing continuous integration checks. It highlights the automated static code analysis utilizing Flake8 (Python) and JSHint (JavaScript) prior to deployment. GitHub Actions CI/CD

2. Django ORM & Relational Data Management
Highlights the Django Administration panel, proving the successful configuration of the SQLite relational database. It displays the ORM mapping and secure administrative control over the CarModel and CarMake entities. Django Admin Console

3. MongoDB Document Retrieval
Displays a raw JSON payload confirming the successful execution of the Django backend REST API endpoints. It verifies the active connection to the MongoDB cluster and the successful retrieval of unstructured dealership documents. MongoDB JSON Payload

4. External AI Sentiment Microservice
Validates the independent cloud deployment of the sentiment analysis engine (hosted on IBM Cloud Code Engine). The microservice successfully accepts string parameters and returns a parsed JSON sentiment evaluation. Sentiment Analysis API

5. React Frontend Architecture & Routing
Showcases the modular UI components (AboutUs and ContactUs) rendered by the React frontend. This proves successful client-side routing and the application of responsive, consistent CSS styling. About Us Component
Contact Us Component

6. Authenticated Cloud Deployment
The complete, cloud-hosted application interface accessed via the Kubernetes port-forwarded environment. It demonstrates successful React-to-Django API communication by maintaining a secure user session state (indicated by the active logout functionality). Deployed and Authenticated UI


πŸ“ Repository Structure

xrwvm-fullstack_developer_capstone/
β”œβ”€β”€ .github/workflows/
β”‚   └── main.yml                   # CI/CD automated linting pipeline
β”œβ”€β”€ server/
β”‚   β”œβ”€β”€ database/                  # Node.js/Express service for MongoDB integration
β”‚   β”‚   β”œβ”€β”€ data/                  # Raw JSON dealership/review data
β”‚   β”‚   β”œβ”€β”€ app.js                 # Express server configuration
β”‚   β”‚   β”œβ”€β”€ *.js                   # Mongoose models (dealership.js, review.js, etc.)
β”‚   β”‚   └── Dockerfile / docker-compose.yml
β”‚   β”œβ”€β”€ djangoapp/                 # Core Django application and API logic
β”‚   β”‚   β”œβ”€β”€ microservices/         # External AI and sentiment engine integrations
β”‚   β”‚   β”œβ”€β”€ models.py / views.py   # Django MVC architecture and backend rendering
β”‚   β”‚   └── populate.py / restapis.py # Database seeding and API routing
β”‚   β”œβ”€β”€ djangoproj/                # Django project configurations
β”‚   β”‚   └── settings.py / urls.py / wsgi.py / asgi.py
β”‚   β”œβ”€β”€ frontend/                  # React SPA client application
β”‚   β”‚   β”œβ”€β”€ public/                # Static public assets (icons, manifest)
β”‚   β”‚   β”œβ”€β”€ src/                   # React components (App.js, index.js)
β”‚   β”‚   β”œβ”€β”€ static/                # HTML templates, stylesheets, and banner images
β”‚   β”‚   └── package.json           # Frontend dependency tree
β”‚   β”œβ”€β”€ Dockerfile                 # Container blueprint for the backend
β”‚   β”œβ”€β”€ deployment.yaml            # Kubernetes deployment manifest
β”‚   β”œβ”€β”€ entrypoint.sh              # Container startup and database migration script
β”‚   β”œβ”€β”€ manage.py                  # Django CLI utility
β”‚   └── requirements.txt           # Python environment dependencies
β”œβ”€β”€ .flake8                        # Flake8 style and linting rules
β”œβ”€β”€ .gitignore                     # Git tracking exclusions
β”œβ”€β”€ deploymentURL.txt              # Live Kubernetes deployment access link
β”œβ”€β”€ LICENSE                        # Apache 2.0 License file
β”œβ”€β”€ README.md                      # Project documentation
β”œβ”€β”€ CI_CD.png                      # Visual proof: GitHub Actions Workflow
β”œβ”€β”€ about_us.png                   # Visual proof: About Us React component
β”œβ”€β”€ car_models.png                 # Visual proof: Django Admin relational ORM
β”œβ”€β”€ contact_us.png                 # Visual proof: Contact Us React component
β”œβ”€β”€ dealerships.png                # Visual proof: MongoDB JSON data payload
β”œβ”€β”€ deployed_loggedin.png          # Visual proof: Authenticated Cloud UI
└── sentiment_analyzer.png         # Visual proof: External AI Sentiment Microservice

βš™οΈ Local Setup & Execution

While this application is designed for cloud-native Kubernetes deployment, you can run the services locally for development and testing purposes.

  1. Clone the Repository
git clone [https://github.com/HAMED-PAYANDA/xrwvm-fullstack_developer_capstone.git](https://github.com/HAMED-PAYANDA/xrwvm-fullstack_developer_capstone.git)
cd xrwvm-fullstack_developer_capstone
  1. Backend Setup (Django) Open a terminal and navigate to the server directory to start the backend API:
cd server
python3 -m venv venv
source venv/bin/activate  # On Windows use `venv\Scripts\activate`
pip install -r requirements.txt
python3 manage.py makemigrations
python3 manage.py migrate
python3 manage.py runserver
  1. Frontend Setup (React) Open a new terminal window, navigate to the frontend directory, and start the client interface:
cd server/frontend
npm install
npm start
  1. Running via Docker (Alternative) If you prefer to run the containerized backend using the included Dockerfile:
cd server
docker build -t dealership-backend .
docker run -p 8000:8000 dealership-backend

πŸŽ“ Learning Outcomes

This capstone acts as a comprehensive proof of proficiency in:

β€’ Full-stack web application development

β€’ RESTful API design and Frontend-backend integration

β€’ CI/CD best practices and automated testing

β€’ Docker containerization and Kubernetes orchestration

β€’ Cloud-native deployment methodologies


πŸ“œ License

This project is licensed under the Apache 2.0 License.


πŸ‘€ Author

Hamed Payanda

  • GitHub: @HAMED-PAYANDA
  • Completed as the Capstone Project for the IBM Full-Stack Software Developer Professional.

About

A full-stack microservices web application built with React, Django, and MongoDB. Features secure authentication, AI sentiment analysis for dealership reviews, and automated CI/CD pipelines. Containerized with Docker and deployed via Kubernetes as the capstone project for the IBM Full-Stack Software Developer Professional.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages