Skip to content

Nobelgalido/xrwvm-fullstack_developer_capstone

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

231 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Full-Stack Car Dealership Web Application

A comprehensive dealership management platform built as the capstone project for the IBM Full Stack Software Developer Professional Certificate. This application demonstrates modern full-stack development practices with microservices architecture, containerization, and cloud deployment.

πŸš€ Features

  • User Authentication & Management: Secure registration and login system
  • Dealership Directory: Browse and search dealerships by state/location
  • Review System: Submit and view dealership reviews with sentiment analysis
  • Car Inventory Search: Advanced filtering by make, model, year, mileage, and price
  • Real-time Sentiment Analysis: Automated review sentiment classification using IBM Watson NLU

πŸ› οΈ Tech Stack

Frontend

  • React.js - Component-based UI with hooks
  • JavaScript ES6+ - Modern JavaScript features
  • CSS3 - Custom tactical dark theme styling

Backend

  • Django - Main application server and REST API
  • Node.js + Express.js - Microservices for dealerships and car inventory
  • Python 3.12 - Backend logic and API integration

Databases

  • MongoDB - NoSQL database for dealerships, reviews, and car inventory
  • SQLite - Relational database for Django models

DevOps & Cloud

  • Docker - Application containerization
  • Docker Compose - Multi-container orchestration
  • Kubernetes - Container orchestration and deployment
  • IBM Cloud Code Engine - Serverless sentiment analysis microservice
  • GitHub Actions - CI/CD pipeline with automated linting

APIs & Services

  • IBM Watson NLU - Natural Language Understanding for sentiment analysis
  • REST APIs - Custom endpoints for all services

πŸ“‹ Architecture

The application follows a microservices architecture:

β”œβ”€β”€ Django Backend (Port 8000)
β”‚   β”œβ”€β”€ User Management
β”‚   β”œβ”€β”€ API Gateway
β”‚   └── Frontend Serving
β”œβ”€β”€ Dealership Service (Port 3030)
β”‚   β”œβ”€β”€ Express.js + MongoDB
β”‚   └── Dealer & Review Management
β”œβ”€β”€ Car Inventory Service (Port 3050)
β”‚   β”œβ”€β”€ Express.js + MongoDB
β”‚   └── Advanced Search & Filtering
└── Sentiment Analysis Service
    └── IBM Code Engine (Serverless)

🚦 Getting Started

Prerequisites

  • Python 3.12+
  • Node.js 18+
  • Docker & Docker Compose
  • IBM Cloud Account (for sentiment analysis)

Installation

  1. Clone the repository
git clone https://github.com/Nobelgalido/xrwvm-fullstack_developer_capstone.git
cd xrwvm-fullstack_developer_capstone
  1. Set up environment variables
cd server/djangoapp
cp .env.example .env
# Edit .env with your configuration
  1. Start the dealership microservice
cd server/database
docker-compose up -d
  1. Start the car inventory microservice
cd server/carsInventory
docker-compose up -d
  1. Install Python dependencies and run Django
cd server
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver
  1. Build the React frontend
cd server/frontend
npm install
npm run build
  1. Access the application
http://localhost:8000

πŸ§ͺ Testing

  • Linting: Automated via GitHub Actions

    • Python: flake8
    • JavaScript: jshint
  • API Endpoints: Test with curl or Postman

# Dealerships
curl http://localhost:3030/fetchDealers

# Car Inventory
curl http://localhost:3050/cars/1

# Django API
curl http://localhost:8000/djangoapp/get_dealers

πŸ“¦ Deployment

Docker Deployment

# Build Django image
cd server
docker build -t dealership-app .

# Deploy to Kubernetes
kubectl apply -f deployment.yaml

Kubernetes Configuration

  • Deployment manifests in server/deployment.yaml
  • Configured for IBM Cloud Kubernetes Service
  • Persistent volumes for MongoDB data

🎨 Key Features Implemented

Frontend Enhancements

  • βœ… Searchable state input (replaced dropdown)
  • βœ… Tactical dark theme with matrix green accents
  • βœ… Centered, readable review panels
  • βœ… Dynamic car inventory filtering

Backend Enhancements

  • βœ… Car inventory microservice with MongoDB
  • βœ… Advanced search endpoints (make, model, year, mileage, price)
  • βœ… Django proxy services for API integration
  • βœ… Sentiment analysis integration

DevOps

  • βœ… Multi-container Docker setup
  • βœ… Kubernetes orchestration
  • βœ… CI/CD pipeline with GitHub Actions
  • βœ… Automated code quality checks

🀝 Contributing

This is a capstone project for educational purposes. Feel free to fork and adapt for your own learning!

πŸ“„ License

This project is part of the IBM Full Stack Software Developer Professional Certificate program.

πŸ‘€ Author

Alfred Galido

  • GitHub: @Nobelgalido
  • Location: Quezon City, Philippines
  • Education: Computer Science Graduate (May 2025)

πŸŽ“ Certifications

  • IBM Full Stack Software Developer Professional Certificate

πŸ™ Acknowledgments

  • IBM Skills Network for the comprehensive curriculum
  • The open-source community for amazing tools and libraries

Built with ❀️ as part of my journey to becoming a full-stack developer

About

Full-stack dealership management platform with React, Django, Node.js microservices, and IBM Watson sentiment analysis. Features inventory search, reviews, and containerized deployment.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 44.5%
  • Python 28.9%
  • HTML 16.4%
  • CSS 8.8%
  • Dockerfile 1.1%
  • Shell 0.3%