Skip to content

GetActive is a dynamic platform that brings students together by making it easy to discover, create, and join fun campus activities! With seamless registration, activity management, and secure login, GetActive helps students connect, build friendships, and stay active throughout their university journey.

Notifications You must be signed in to change notification settings

BUMETCS673/CS673OLSum25Team1

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contents

CD workflow CI workflow

Coverage

GetActive

drawing

GetActive helps university students overcome the challenge of finding and joining social or recreational groups. It offers a platform to discover, create, and join on-campus activities, making it easier to build connections. Students can register, verify their accounts, and manage their participation in multiple activities. The goal is to promote an active, socially connected campus experience.

Software Architecture

alt text

The GetActive application is composed of modular components distributed across a client-server architecture. The system is decomposed into three main components: the frontend, the backend, and the database, each of which is containerized using Docker and deployed to AWS cloud platform. The architecture follows a layered design pattern within the backend and uses industry-standard frameworks and tools for development, deployment, and scalability.

  1. Database Service (db)
  • Uses MySQL 8.0
  • Port mapping: 3306:3306
  • Data persistence: Uses Docker volume (mysql_data)
  • Health check: Checks database connection status every 10 seconds
  1. Backend Service (backend)
  • Based on Spring Boot 3.x
  • Port mapping: 3232:3232
  • Dependencies: Requires database service to be healthy
  • Health check: Checks API health status every 10 seconds
  1. Frontend Service (frontend)
  • Based on Node.js and React
  • Port mapping: 80:80
  • Uses Nginx as web server
  • Dependencies: Requires backend service to be healthy

Technology Stack and Frameworks

  • Frontend: React, HTML5, CSS3, Axios/Fetch API (for REST communication)
  • Backend: Java, Spring Boot, Spring Security, Spring Data JPA
  • Database: MySQL
  • Authentication: JWT (JSON Web Tokens)
  • Deployment: Docker, GitHub, AWS, GitHub Actions
  • Version Control: Git, GitHub

Package Structure

alt text

Class Diagram

alt text

Database Diagram

alt text

Docker Environment Configuration

This code folder contains all source code and test code. This document provides detailed instructions for the Docker environment configuration and usage of the GetActive project. The project uses Docker Compose to manage multiple services, including frontend, backend, and database services.

Quick Start

Prerequisites

Starting Services

  1. After cloning the project, navigate to the project root directory:

    cd code
  2. Start all services using Docker Compose:

    docker-compose --profile prod up -d
  3. Check service status:

    docker-compose ps

Accessing Services

  1. Exec into the Docker container:
docker exec -it getactive-backend bash
  1. Register curl -d '{"email":"jin@bu.edu", "username":"jin2022", "password": "Password123!"}' -H "Content-Type: application/json" -X POST http://localhost:3232/v1/register

  2. Create Activity curl -d '{"name":"New Activity", "description":"description", "location": "location", "startDateTime": "2026-05-25 19:00", "endDateTime": "2026-05-25 19:59"}' -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ0eXBlIjoiUkVHSVNUUkFUSU9OX0NPTkZJUk1BVElPTiIsInN1YiI6ImppbjIwMjIiLCJpYXQiOjE3NTAwMzY2MTEsImV4cCI6MTc1MDAzODQxMX0.gPVUISr-o_IxWfIOEbFAeLHI2QPASZd43IciyV-qves" -X POST http://localhost:3232/v1/activity

  3. Get Activities curl -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ0eXBlIjoiUkVHSVNUUkFUSU9OX0NPTkZJUk1BVElPTiIsInN1YiI6ImppbjIwMjIiLCJpYXQiOjE3NTAwMzY2MTEsImV4cCI6MTc1MDAzODQxMX0.gPVUISr-o_IxWfIOEbFAeLHI2QPASZd43IciyV-qves" -X GET http://localhost:3232/v1/activities

Environment Configuration

Database Configuration

  • Database name: getactive
  • Username: root
  • Password: password
  • Port: 3306

Backend Configuration

  • Service port: 3232
  • Health check endpoint: /v1/health
  • Database connection configuration in application.properties

Frontend Configuration

  • Web server port: 80
  • API proxy configuration in nginx.conf

Development Guide

Rebuilding Services

When code changes are made, services need to be rebuilt:

# Rebuild all services
docker-compose build

# Rebuild specific service
docker-compose build [service_name]  # Example: docker-compose build backend

Viewing Logs

# View logs for all services
docker-compose logs

# View logs for specific service
docker-compose logs [service_name]  # Example: docker-compose logs backend

# View logs in real-time
docker-compose logs -f

Stopping Services

# Stop all services
docker-compose down

# Stop services and remove volumes
docker-compose down -v

Troubleshooting

  1. Port Conflicts
  • Ensure ports 80, 3232, and 3306 are not in use by other services
  • Use lsof -i :[port] to check port usage
  1. Service Startup Issues
  • Check Docker logs: docker-compose logs [service_name]
  • Ensure all dependent services are running properly
  • Verify environment variables and configuration files
  1. Database Connection Issues
  • Ensure database container is running
  • Check database connection configuration
  • Verify database user permissions
  1. Frontend Access Issues
  • Check Nginx configuration
  • Ensure backend API is accessible
  • Check browser console for error messages

Important Notes

  1. This configuration is for development environment only, not recommended for production use
  2. Database data is persisted through Docker volume, data won't be lost when containers are removed
  3. Services need to be rebuilt after code changes
  4. Ensure Docker and Docker Compose versions are compatible

Contribution Guidelines

  1. Test Docker configuration changes locally before committing
  2. Update this documentation when configuration changes are made
  3. Ensure all services can start and run properly before submitting code

About

GetActive is a dynamic platform that brings students together by making it easy to discover, create, and join fun campus activities! With seamless registration, activity management, and secure login, GetActive helps students connect, build friendships, and stay active throughout their university journey.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 61.8%
  • JavaScript 37.0%
  • Other 1.2%