You will create an online platform for social runners. Its aim should be to provide everything a runner needs to plan and organise group running activities. At a minimum, your application should allow an individual to plan and schedule a route (including starting time, starting point, mid-run meeting points, end point, and expected pace). It should allow users to ‘sign-up’ to a run, and should allow users to leave comments for the run.
The real challenge is to come up with useful functionality that goes beyond simply putting things into a database. Some examples include calculating route lengths given starting, meeting and end points (e.g. by interfacing with a mapping API), creating new routes on an interactive map (e.g. Google Maps or OpenStreetMap), importing GPS traces and plotting the route (e.g. using the GPX format), automatic grading of routes based on height profiles and planned pace (e.g. by interfacing with a mapping API), recommending suitable activities based on the user's past activities and location, weather forecasting for upcoming events (e.g. by interfacing with a weather API), showing scheduled/completed events using a calendar interface, plotting statistics such as number of short/mid/long distance activities completed per week/month/day.
Description: Starting at North Queensferry, cross the Forth Road Bridge into South Queensferry, along cycle path to Dalmeny then into Dalmeny Estate before returning to South Queensferry then back across the bridge
Starting Point: Carpark at Doubletree (next to Forth Road Bridge)
Meeting Point 1: Start of the cycle path on the South Queensferry side of the Forth Road Bridge
Meeting Point 2: End of the cycle path in Dalmeny
Meeting Point 3: Dalmeny Estate
Meeting Point 4: End of the cycle path in Dalmeny
Meeting Point 5: Start of the cycle path on the South Queensferry side of the Forth Road Bridge
End Point: Carpark at Doubletree (next to Forth Road Bridge)
Black Mountains Trail Half-Marathon Route
Description: Starting with a short climb onto the Table Mountain, up through the valley to summit of PenTwyn Glas, continue on this ridge until you descend into McNamara’s Pass, leaving the base of the valley, follow an ancient wall, follow forest trails, then cross streams and fields climbing to retrace earlier steps.
Your application should fulfill each of these requirements:
UI: A client-side user interface for user interaction (as in Practical 1). RESTful API: A RESTful API written in Node.js/Express for exchanging data between the client and the server (as in Practical 2).
Database: A database backend for persistent storage of data about activities and possibly users. Algorithm: An algorithm for implementing additional functionality, such as calculating statistics, matching users to activities based on previous experience, etc.
External API: Use of an external API such as mapping (e.g. Google Maps), distance calculation (e.g. MapZen), weather APIs, etc.
JS Library: Use of a JavaScript library such as D3 for graphics, chart.js for graphs, jplayer for media, etc.
DELIVERABLES
A single .zip file must be submitted electronically via MMS by the deadline. It should contain: Your complete project directory. This should contain all code required to run your program, including all CSS, HTML and JavaScript files written by yourself, any scripts required to initialise and/or populate your database, your package.json file listing all dependencies, all locally hosted JavaScript libraries used in your project, and any other files required by your project.
A report in PDF format detailing the design of your solution including the APIs and libraries that were used, discussing any requirements and design decisions taken, describing your approach to testing, and reflecting on the success and challenges of your application and development process. Try to focus on the reasons for your decisions rather than just providing a description of what you did.