Skip to content

BT3103AppDev1/L2_Group_11

Repository files navigation

NUSpot

About

Social isolation among university students is a growing concern, often made worse by the difficulty of organising last-minute social and academic activities. NUSpot is a centralised, location-based web application designed to reduce the "social search cost" students face at NUS. By providing a real-time, interactive map, the platform allows verified students to easily broadcast, discover, and join low-stakes activities, such as finding study buddies, grabbing a meal, or organising casual sports, happening immediately around them. The system aims to replace fragmented communication channels with a single campus network to make spontaneous interaction frictionless.

Our team followed a rigorous Agile SCRUM framework across three iterative sprints. A key strategic decision was the proactive establishment of our DevOps infrastructure; the GitHub Actions CI/CD pipeline and Firebase environment were engineered before Sprint 1 even commenced. This allowed the team to achieve a live production deployment within the first week of the project, enabling continuous delivery and immediate feedback throughout the lifecycle.

In total, the team completed all 27 user stories in the Product Backlog, delivering 96 Story Points. To validate correctness and guard against regressions, the team also implemented a comprehensive automated unit testing. We strictly adhered to SCRUM ceremonies, including bi-weekly sprint planning, weekly stand-ups, and retrospectives, managed through Google Sheets and GitHub Projects. On the technical side, we transitioned from feature development to high-integrity engineering, focusing on robust architecture and DevOps practices. This was especially critical for our "Intelligent Event Orchestration" feature, which uses the OpenAI API to parse event details.

By the end of the final sprint, our DevOps performance attained desirable DORA metrics, including a deployment frequency of 17 deploys per week, a change failure rate of 8%, and an average lead time for changes of approximately 6 hours. NUSpot stands as a secure, scalable, and fully verified platform ready to foster a more connected campus community.

Links

Website: https://nuspot-6da9f.web.app/

Report: https://docs.google.com/document/d/1p1ACj5qQKq2xx0FkWzhI7vUd335EeWuFW6AItELkte8/edit?tab=t.fwn8vewaopte

SCRUM Artefacts: https://docs.google.com/spreadsheets/d/1Q7-xfdRpTWFjJQD4bcs01M08UA08CcIoyGSYgebNYU0/edit?usp=sharing

Video: https://youtu.be/E6G1LttzFeg

Tech Stack

Frontend: Vue 3 (Composition API), Vite, HTML, CSS
State Management: Pinia
Backend / BaaS: Firebase (Authentication, Firestore Database, Real-time Listeners)
APIs: Leaflet
DevOps: GitHub Actions CI/CD, Firebase Hosting

Key Features

  • Real-time Event Discovery: Interactive map with live event updates
  • Intelligent Event Orchestration: NLP-powered event parsing with 100% accuracy
  • Campus Social Networking: Friend requests with real-time status updates
  • Secure Authentication: NUS email verification (@u.nus.edu)
  • Continuous Deployment: 13 deploys per week with 6-hour lead time

How To Use Locally

To clone and run this application, you will need Git and Node.js (which comes with npm) installed on your computer.

From your command line:

# Clone this repository
git clone https://github.com/BT3103AppDev1/L2_Group_11/

# Go into the project folder
cd L2_Group_11

# Install dependencies
npm install

# IMPORTANT: Ensure your .env file is created with the following keys:
# - Firebase config keys (VITE_FIREBASE_*)
# - VITE_OPENAI_API_KEY — required for AI-powered smart event parsing (US22)
#   Without this key, the feature falls back to rule-based parsing (US20)

# Run the frontend app
npm run dev

# Run unit tests (161 tests across 27 User Stories)
npm run test:unit

# Run unit tests in watch mode (re-runs on file changes)
npm run test:watch

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors