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.
Website: https://nuspot-6da9f.web.app/
SCRUM Artefacts: https://docs.google.com/spreadsheets/d/1Q7-xfdRpTWFjJQD4bcs01M08UA08CcIoyGSYgebNYU0/edit?usp=sharing
Video: https://youtu.be/E6G1LttzFeg
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
- 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
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