π Chattingo - Mini Hackathon Challenge#
A full-stack real-time chat application built with React, Spring Boot, and WebSocket technology. Your mission: Containerize this application using Docker and deploy it to Hostinger VPS using Jenkins CI/CD pipeline.
π¨ IMPORTANT: Registration Required#
π REGISTER NOW#
Deadline: September 5, 2025
What you need to register:
- Your Name
- Email ID
- LinkedIn Profile URL
- GitHub Profile URL
π€ SUBMISSION FORM#
Deadline: September 10, 2025 (11:59 PM)
π Repository Access#
Repository URL: https://github.com/iemafzalhassan/chattingo
- Currently: Private repository (registration phase)
- Will be public: After registration closes (Sept 6)
- Action Required: Fork & star the repository once it becomes public
π― Hackathon Challenge#
Transform this vanilla application into a production-ready, containerized system with automated deployment!
π Table of Contents#
- Hackathon Overview
- Architecture Overview
- Technology Stack
- Quick Start
- Your Tasks
- Application Features
- Project Structure
- Submission Requirements
- Support & Resources
- Judging Criteria
π Hackathon Overview#
π― Project Goals#
- Build & Deploy: Create Dockerfiles and containerize the application
- CI/CD Pipeline: Implement Jenkins automated deployment
- VPS Deployment: Deploy on Hostinger VPS using modern DevOps practices
π Timeline & Registration#
Registration Phase (Sept 3-5)#
π REGISTER HERE - Complete by Sept 5
Registration Form Requirements:
- Name
- Email ID
- LinkedIn Profile
- GitHub Profile
Event Schedule#
- Sept 6: Kickoff session (VPS setup, Docker + Jenkins basics)
- Sept 7-10: Build period (3 days)
- Sept 10: Submissions close at 11:59 PM
- Sept 11-12: Judging & reviews
- Sept 13: Winners announced
ποΈ Architecture Overview#
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Frontend β β Backend β β Database β
β (React) βββββΊβ (Spring Boot) βββββΊβ (MySQL) β
β Port: 80 β β Port: 8080 β β Port: 3306 β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β
βββββββ WebSocket βββββββ
π οΈ Technology Stack#
Frontend#
- React 18 - Modern UI framework
- Redux Toolkit - State management
- Material-UI - Component library
- Tailwind CSS - Utility-first CSS
- WebSocket (SockJS + STOMP) - Real-time messaging
- React Router - Client-side routing
Backend#
- Spring Boot 3.3.1 - Java framework
- Spring Security - Authentication & authorization
- Spring Data JPA - Database operations
- Spring WebSocket - Real-time communication
- JWT - Token-based authentication
- MySQL - Database
DevOps (Your Tasks)#
- Docker - Containerization (YOU BUILD)
- Docker Compose - Multi-container orchestration (YOU BUILD)
- Jenkins - CI/CD pipeline (YOU BUILD)
- Nginx - Web server & reverse proxy (YOU BUILD)
π Quick Start#
Just Registered? Start Here!#
Step 1: Fork & Clone#
|
|
Step 2: Join Discord#
- πβEvents-Announcement: Stay updated
- πβEvents-Chat: Get technical support
Step 3: Local Development Setup#
Follow CONTRIBUTING.md for detailed setup instructions.
Step 4: Follow the Timeline#
- Sept 7-10: Build your implementation
- Sept 10: Submit before 11:59 PM
Reference Guides#
- Detailed Setup & Deployment: CONTRIBUTING.md
π§ YOUR TASKS#
Task 1: Docker Implementation (5 Marks)#
You need to create these files from scratch:
Frontend Dockerfile (3-stage build)#
- Stage 1: Node.js build environment
- Stage 2: Build React application
- Stage 3: Nginx runtime server
Backend Dockerfile (3-stage build)#
- Stage 1: Maven build environment
- Stage 2: Build Spring Boot application
- Stage 3: JRE runtime
Docker Compose (Root level)#
Create docker-compose.yml
to orchestrate all services.
Scoring: Single Stage (2), Two Stage (4), Multi Stage (5)
Task 2: Jenkins CI/CD Pipeline (17 Marks)#
Create a Jenkinsfile
with these stages:
|
|
Additional Requirements#
- Jenkins Shared Library: 3 Marks
- Active Engagement: 2 Marks
- Creativity: 2 Marks
- Quality Storytelling: 10 Marks
- README (Compulsory): 3 Marks
- Blog (Optional): 2 Marks
- Video (Compulsory): 5 Marks
Task 3: VPS Deployment#
- Hostinger VPS Setup: Ubuntu 22.04 LTS, 2GB RAM
- Domain Configuration: Setup your domain with DNS
- SSL Certificate: Configure HTTPS with Let’s Encrypt
- Production Deployment: Automated deployment via Jenkins
Detailed Instructions: See CONTRIBUTING.md
π± Application Features#
Core Functionality#
- β User authentication (JWT)
- β Real-time messaging (WebSocket)
- β Group chat creation
- β User profile management
- β Message timestamps
- β Responsive design
API Endpoints#
POST /api/auth/register - User registration
POST /api/auth/login - User login
GET /api/users - Get users
POST /api/chats/create - Create chat
GET /api/chats - Get user chats
POST /api/messages/create - Send message
GET /api/messages/{chatId} - Get chat messages
WS /ws - WebSocket endpoint
π Project Structure#
chattingo/
βββ backend/ # Spring Boot application
β βββ src/main/java/
β β βββ com/chattingo/
β β βββ Controller/ # REST APIs
β β βββ Service/ # Business logic
β β βββ Model/ # JPA entities
β β βββ config/ # Configuration
β βββ src/main/resources/
β β βββ application.properties
β βββ .env # Environment variables
β βββ pom.xml
βββ frontend/ # React application
β βββ src/
β β βββ Components/ # React components
β β βββ Redux/ # State management
β β βββ config/ # API configuration
β βββ .env # Environment variables
β βββ package.json
βββ CONTRIBUTING.md # Detailed setup & deployment guide
βββ README.md # This file
π₯ Submission Requirements#
π€ Submission Form: Submit Here#
Deadline: Sept 10, 11:59 PM
Required Submission Fields#
- Name - Your full name
- Email ID - Contact email
- GitHub Repository URL - Your forked and implemented project
- Video Demo URL - 3-minute demo video (YouTube/Drive link)
- Live Application URL - Your deployed application on VPS
- Blog URL - Technical writeup (Optional but recommended)
- README URL - Link to your updated README file
Required Deliverables#
GitHub Repository with your implementation
- β Dockerfiles (Backend & Frontend - 3-stage builds)
- β docker-compose.yml (Root level orchestration)
- β Jenkinsfile (Complete CI/CD pipeline)
- β nginx.conf (Frontend configuration)
- β Environment configurations
- β Updated README with deployment instructions
Live Application deployed on Hostinger VPS
- β Working chat application with HTTPS
- β SSL certificate configured
- β Domain properly configured
- β All features functional (registration, login, messaging)
Video Demo (3 minutes max) showing:
- β Local Docker setup demonstration
- β Jenkins pipeline execution
- β Live application walkthrough on VPS
- β Key features demonstration
Bonus Points#
- Blog Post - Technical writeup of your implementation (2 marks)
- Additional Features - Enhancements to the chat app
- Monitoring - Application monitoring and logging
- Security - Additional security measures
π Getting Started with the Challenge#
Implementation Flow (Following Hackathon Timeline)#
Phase 1: Registration (Sept 3-5)#
- Register Here with your details
- Fork this repository: https://github.com/iemafzalhassan/chattingo
- Join Discord channels for updates and support
Phase 2: Kickoff Session (Sept 6)#
- Attend intro session - VPS setup guide, Docker & Jenkins basics
- Get your VPS access and domain setup
- Ask questions and clarify requirements
Phase 3: Build Period (Sept 7-10)#
- Day 1: Local development setup β CONTRIBUTING.md
- Day 2: Docker & Jenkins implementation
- Day 3: VPS deployment β CONTRIBUTING.md
Phase 4: Submission (Sept 10)#
π€ SUBMIT HERE before 11:59 PM
Phase 5: Results (Sept 11-13)#
- Sept 11-12: Judging & reviews
- Sept 13: Winners announced
π Support & Resources#
Discord Channels#
- πβπ€ππΎπππ-π ππππππΌπΎππΎππ: Stay Active in the Announcement channel for Hackathon Update.
- πβπ€ππΎπππ-π’ππΊπ: Technical support.
Reference Links#
π Judging Criteria#
Component | Marks | Description |
---|---|---|
Dockerfile | 5 | Multi-stage implementation |
Jenkinsfile | 17 | Complete CI/CD pipeline |
Shared Library | 3 | Reusable Jenkins components |
Engagement | 2 | Active participation |
Creativity | 2 | Unique features/implementation |
Documentation | 10 | README, blog, video |
Good luck with your hackathon project! π