Skip to content

alvinjt/sharedspace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

SharedSpace - Roommate Management App

SharedSpace is a comprehensive roommate management application designed to streamline apartment living through efficient communication, task management, and resource sharing. Built for the COMS 309 course at Iowa State University.

Table of Contents

Project Overview

SharedSpace is a full-stack application that helps roommates manage their shared living spaces more effectively. The app provides tools for communication, chore management, bill splitting, package tracking, and community engagement.

Features

Core Functionality

  • User Authentication: Secure signup/login with JWT token-based authentication
  • Apartment Management: Create and manage apartment spaces with multiple roommates
  • Real-time Chat: WebSocket-based messaging system for instant communication
  • Calendar Events: Shared calendar for coordinating schedules and events
  • Chore Management: Assign and track household chores among roommates

Advanced Features

  • Bill Splitting: Split grocery bills and other expenses fairly
  • Package Tracking: Track incoming packages and deliveries
  • Lost & Found: Community board for lost and found items
  • Maintenance Requests: Submit and track apartment maintenance issues
  • Issue Reporting: Report and resolve apartment-related problems
  • Community Board: Share announcements and engage with comments
  • RA On Duty: Schedule and track RA availability (for dorm settings)
  • Recipe Sharing: Share and discover recipes with roommates
  • Payment Processing: Integrated payment system using Stripe
  • AI Features: Google Gen AI integration for smart suggestions
  • Notifications: Real-time notification system for important updates

Technology Stack

Backend

  • Framework: Spring Boot 3.5.6
  • Language: Java 17
  • Database: MySQL with JPA/Hibernate
  • Authentication: Spring Security with JWT (JSON Web Tokens)
  • Real-time Communication: WebSocket
  • Payment Processing: Stripe API
  • AI Integration: Google Gen AI
  • Testing: JUnit, RestAssured
  • Build Tool: Maven

Frontend

  • Platform: Android
  • Language: Java
  • Min SDK: 24 (Android 7.0)
  • Target SDK: 33 (Android 13)
  • Networking: Volley, OkHttp
  • Authentication: JWT
  • Testing: Espresso, JUnit
  • Build Tool: Gradle

Project Structure

2_jubair_4/
├── Backend/                          # Spring Boot REST API
│   ├── src/main/java/coms309/sharedspace/
│   │   ├── config/                   # Security and WebSocket configuration
│   │   ├── controller/               # REST API endpoints
│   │   ├── dto/                      # Data Transfer Objects
│   │   ├── model/                    # JPA Entity models
│   │   ├── repository/               # Database repositories
│   │   ├── service/                  # Business logic layer
│   │   ├── util/                     # Utility classes
│   │   └── websocket/                # WebSocket handlers
│   ├── pom.xml                       # Maven dependencies
│   └── SharedSpace_Postman_Collection.json  # API testing collection
├── Frontend/                         # Android application
│   └── login_screen/
│       └── app/
│           └── src/
│               ├── main/java/        # Android activities and services
│               ├── androidTest/      # Instrumented tests
│               └── test/             # Unit tests
├── Documents/                        # Project documentation
│   ├── Block Diagram.pdf
│   ├── Coverage Reports/
│   └── Nathan-Javadoc/               # API documentation
└── Experiments/                      # Individual learning experiments
    ├── Alvin_Thomas/
    ├── George_Insigne/
    ├── Maxim_Duncan/
    └── Nathan_Anderson/

API Documentation

Authentication Endpoints

  • POST /signup - Register a new user
  • POST /login - Authenticate and receive JWT token

Core Endpoints

  • /users/* - User management
  • /apartments/* - Apartment operations
  • /chat/* - Messaging system
  • /chores/* - Chore management
  • /calendar/* - Event scheduling
  • /groceries/* - Grocery tracking
  • /packages/* - Package management
  • /maintenance/* - Maintenance requests
  • /community-board/* - Community posts
  • /notifications/* - User notifications
  • /payments/* - Payment processing

Complete API documentation is available in:

  • Backend/SharedSpace_Postman_Collection.json - Import into Postman
  • Documents/Nathan-Javadoc/ - Javadoc HTML documentation

Testing

Backend Testing

# Run all tests
./mvnw test

# Run with coverage
./mvnw test jacoco:report

# View coverage report
open target/site/jacoco/index.html

Coverage reports are also available in Backend/htmlReport/

Frontend Testing

# Unit tests
./gradlew test

# Instrumented tests (requires emulator/device)
./gradlew connectedAndroidTest

# Generate coverage report
./gradlew createDebugCoverageReport

Team Members

Team 2_jubair_4

  • Alvin Thomas
  • George Insigne
  • Maxim Duncan
  • Nathan Anderson

Course: COMS 309 - Software Development Practices Institution: Iowa State University Semester: Fall 2025

Documentation

Additional documentation can be found in the Documents/ directory:

  • Block Diagram: System architecture overview
  • Screen Sketches: UI/UX design mockups
  • Coverage Reports: Test coverage analysis
  • Javadoc: Complete API documentation

Repository: https://git.las.iastate.edu/cs309/2025fall/2_jubair_4

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages