// Academic Project · Year 2 · COMP2913 · Team Collaboration

TerraTracker - GPS Route Tracking Platform

Shipped a GPS route-tracking web app in a 6-person agile team, with Flask, PostgreSQL, CI/CD and Docker.

Cloud & distributedTeam ProjectFlaskPythonPostgreSQLAgileGit WorkflowDockerCI/CDLeaflet.jsRESTful API

A full-stack app for recording and sharing GPS routes, built by a team of six working in agile sprints. We documented every sprint and ran the project through Git the way a professional team would.

Project Overview & Academic Context

COMP2913 Software Engineering Project

TerraTracker lets people record their outdoor activities with GPS, see them on a map and share them. We built it as a team over several agile sprints. The module took us through the whole development lifecycle, from gathering requirements to deployment, with the focus on working well together as a software team.

Team Structure

  • • A team of six developers
  • • Each member had their own role
  • • Work planned and delivered in agile sprints
  • • Weekly stand-ups and retrospectives

Project Deliverables

  • • GitHub repository with complete commit history
  • • A detailed project wiki
  • • Live product demonstration
  • • Team and individual reflections

Core Features & Functionality

Route Tracking

GPS recording: tracks location in real time
Activity log: distance, speed and elevation
Maps: each route shown on an interactive map
Export: GPX and KML files

Social Sharing

Sharing: routes can be public or private
Profiles: each user's activity history and stats
Following: follow other users and find new routes
Comments and ratings: feedback on each route

Analytics

Stats: performance figures for every activity
Progress: personal records and achievements
Charts: graphs of your activity data
Goals: set distance and activity targets

Technical Stack & Architecture

Backend Stack

  • Flask: the Python framework behind the API
  • PostgreSQL: stores all the data
  • SQLAlchemy: ORM for the database models
  • REST API: a clean interface for the frontend to call
  • Authentication: user sessions and account security

Frontend Stack

  • HTML/CSS/JavaScript: the core of the frontend
  • Leaflet.js: the interactive maps
  • Bootstrap: responsive layout and UI
  • AJAX: loads data without reloading the page
  • Chart.js: the stats charts

DevOps & Deployment

Containerization

Docker, so everyone developed and deployed in the same environment

Version Control

Git, with a branch and pull request for each feature

CI/CD Pipeline

Tests and deployment ran automatically

Agile Development Process

Sprint Planning

  • 2-week sprints throughout the project
  • Sprint goals agreed at the start of each one
  • User stories with acceptance criteria for each task
  • Estimates in story points, with velocity tracked

Collaboration Tools

  • GitHub Projects: a Kanban board for tasks
  • Issues: bug reports and feature requests
  • Wiki: meeting notes and design decisions
  • Code review: every pull request was reviewed

Quality Assurance

  • Unit tests that ran automatically
  • A shared coding style across the team
  • Integration tests checking features end to end
  • Demos to gather user feedback

Team Collaboration Highlights

Development Practices

  • • Regular stand-ups to share progress
  • • A retrospective after each sprint to improve the next
  • • Pair programming on the harder features
  • • Sessions where we taught each other what we knew

Technical Achievements

  • • A clean commit history with clear messages
  • • A detailed wiki with architecture diagrams
  • • A successful live demo of the product
  • • A tidy codebase in a consistent style

Skills I used

  • • Working in a team with agile methods
  • • Version control with a team Git workflow
  • • Full-stack web development with Flask and JavaScript
  • • Designing a database and mapping it with an ORM
  • • RESTful API design and documentation
  • • Containerising and deploying with Docker

Takeaways

  • • Software engineering practices used in industry
  • • Thorough documentation and project wiki
  • • Successful live product demonstration
  • • Reflections on how the team worked together
  • • A standard industry development workflow
  • • Ethical, professional conduct as developers

Project Resources & Documentation

Access Project Repository & Documentation

The GitHub repository has the source code, the project wiki, our sprint documentation and the team reflections from the COMP2913 Software Engineering Project.

A team project run with the practices of a professional software team

Technologies & Tools

What the team used to build and run the project

Python Flask PostgreSQL SQLAlchemy HTML/CSS/JS Leaflet.js Bootstrap Docker Git/GitHub Agile/Scrum CI/CD REST API

Ask AI

answers from this site · DeepSeek

Starting assistant...