// 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.
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
Social Sharing
Analytics
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