Skip to content

RaresI/CampSphere

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ•οΈ CampSphere

Educational Camp Management Platform

CampSphere is a full-stack web application designed to simplify the management of educational camps. It provides dedicated portals for parents, children, instructors, administrators, and camp owners with modern, role-specific dashboards.

Team:

  • Ionescu Rares-Andrei -> Child & Parent Portals
  • Petrec Matei -> Admin Portal
  • Leonte Robert -> Owner & Instructor Portals

✨ Features

πŸ” Authentication & Roles

  • Secure login system with Spring Security
  • Five distinct user roles with specialized functionality:
    • Parent: Register and manage children, select camps, track progress
    • Child: Upload feedback photos, submit camp reviews
    • Instructor: View assigned activities, manage daily schedules
    • Admin: Manage camps, groups, activities, locations, and registrations
    • Owner: Full control with analytics, dashboards, and leaderboards

πŸ‘¨β€πŸ‘©β€πŸ‘§ Parent Portal

  • Register as a parent (email + phone login)
  • Register multiple children under one account
  • Browse and register for available camps
  • View child progress, scores, and milestones
  • Track camp registrations and optional trips

πŸ‘§ Child Portal

  • Login with credentials created by parent
  • Upload camp photos with feedback
  • View personal camp schedule
  • Submit feedback and reviews

πŸ‘¨β€πŸ« Instructor Portal

  • View assigned activities and groups
  • Manage daily activity schedules
  • Track activity completion

πŸ› οΈ Admin Portal

  • Create and manage camps, activities, locations, and trips
  • Assign instructors to activities
  • Generate groups automatically based on age and activity slots
  • View comprehensive feedback from children
  • Monitor costs and summaries

πŸ“Š Owner Portal

  • Full system oversight with analytics dashboards
  • Assign scores to children for gamification
  • View leaderboards across all camps
  • Manage activity schedules and instructor assignments
  • Track overall camp performance

πŸš€ Tech Stack

  • Backend: Java 17, Spring Boot 3.x, Spring Security
  • Database: PostgreSQL 15 (containerized with Docker)
  • Frontend: HTML5, CSS3, JavaScript (ES6+), Bootstrap 5.3.2
  • Design: Custom modern design system with Inter font, gradient backgrounds, animations
  • Build Tool: Maven 3.8+
  • Containerization: Docker & Docker Compose

πŸ“‹ Prerequisites

Before running CampSphere, ensure you have the following installed:


πŸ”§ Installation & Setup

1️⃣ Clone the Repository

git clone https://github.com/yourusername/CampSphere.git
cd CampSphere

2️⃣ Start PostgreSQL Database

docker-compose up -d

This will start a PostgreSQL 15 container named campsphere-postgres on port 5432 with:

  • Database: campsphere
  • Username: postgres
  • Password: postgres

3️⃣ Create Database Schema

The application will automatically create tables on first run using JPA/Hibernate. To populate sample data:

On macOS/Linux:

chmod +x setup-database.sh
./setup-database.sh

On Windows:

setup-database.bat

This will populate the database with sample camps, locations, activities, instructors, parents, and children.

4️⃣ Build and Run the Application

Using Maven Wrapper (recommended):

./mvnw clean install
./mvnw spring-boot:run

Or using Maven:

mvn clean install
mvn spring-boot:run

The application will start on http://localhost:8080


🎯 Usage Guide

Accessing Different Portals

Once the application is running, navigate to:

Sample Login Credentials

After running the setup script, you can use these sample accounts:

Parent:

  • Email: wdavis@gmail.com
  • Phone: (080)280-6271

Child:

  • Email: preeves@yahoo.com
  • Password: password123

Admin/Owner:

  • Check the init-ecamp-data.sql file for admin and owner credentials

πŸ“‚ Project Structure

CampSphere/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main/
β”‚   β”‚   β”œβ”€β”€ java/com/ecamp/          # Backend Java code
β”‚   β”‚   β”‚   β”œβ”€β”€ controller/          # REST API endpoints
β”‚   β”‚   β”‚   β”œβ”€β”€ model/               # JPA entities
β”‚   β”‚   β”‚   β”œβ”€β”€ repository/          # Data access layer
β”‚   β”‚   β”‚   └── service/             # Business logic
β”‚   β”‚   └── resources/
β”‚   β”‚       β”œβ”€β”€ static/              # Frontend HTML/CSS/JS
β”‚   β”‚       β”‚   β”œβ”€β”€ assets/          # Images, fonts
β”‚   β”‚       β”‚   └── *.html           # Portal pages
β”‚   β”‚       └── application.properties
β”‚   └── test/                        # Unit tests
β”œβ”€β”€ docker-compose.yml               # PostgreSQL container config
β”œβ”€β”€ init-ecamp-data.sql             # Sample data population
β”œβ”€β”€ setup-database.sh/bat           # Database setup scripts
└── pom.xml                         # Maven dependencies


🎨 Design System

CampSphere features a modern design system with:

  • Color Themes:
    • Blue gradient for parents πŸ”΅
    • Green gradient for children 🟒
    • Orange gradient for admins 🟠
    • Purple gradient for owners 🟣
  • Typography: Inter font family
  • Components: Modern cards, animated backgrounds, gradient buttons
  • Animations: Smooth hover effects, floating patterns, fade-in transitions
  • Accessibility: Proper label-input associations, semantic HTML

🐳 Docker Commands

Start database:

docker-compose up -d

Stop database:

docker-compose down

View logs:

docker logs campsphere-postgres

Access PostgreSQL CLI:

docker exec -it campsphere-postgres psql -U postgres -d campsphere

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.


πŸ“ License

This project is licensed under the MIT License.


πŸ‘¨β€πŸ’» Author

Created with ❀️ for modern camp management


πŸ™‹ Support

For questions or issues, please open an issue on GitHub.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors