Project - Gigi-QiZhang/webdev-zhang-qi GitHub Wiki
Marathon Website
Project Description
Team Members:
- Qi Zhang
- Shiyu Wang
APIs: We plan to use 3 APIs in this project.
- Map API, we will choose one from them:
- Weather API, we will choose one from them:
- MeteoGroup Region: https://www.programmableweb.com/api/meteogroup-region
- Cheap Weather: https://www.programmableweb.com/api/cheap-weather
- Athlete API, used to trace race results (and some other useful data):
- Athlinks API: https://www.programmableweb.com/api/athlinks
Description
In this project, we are going to make a web application for marathon. Since most of marathon websites are complicated and not mobile friendly, we plan to make a clean, free and mobile friendly web applications for all marathon athletes, organizations and volunteers to register and plan marathon events. Therefore, the potential human users for our application are:
- Organizations
- Athletes
- Volunteers
Because the basic functions of this web applications will be posting events, registering events and sharing results, we will have domains such as:
- Organization
- Athlete
- Volunteer
- Events
- Running Results
- News
- advertisements
Hence, for different users, they will need different functions:
- Organizations will need functions to post events, edit events and delete events. Also, they will have ability to set up the capacity of athletes and volunteers. Moreover, they will be able to view athletes and volunteers’ profiles and be able to contact any or all of athletes and volunteers who applied their events.
- For athletes, they will have their personal profile to track any events they joined or about to join. Also, they can see the results of their historical running events. And they can search and register any events posted by organizations.
- Volunteers are similar to athletes that can search and register events which need them. Also they can see the results of the events. And they have their profile to show their past events and upcoming events.
- After basic users, there will be administrators who have ability to ban users, events or organizations. They may also have ability to upload news, highlight events and add advertisements.
- Moreover, visitors who haven’t register yet have limit functions to view events, news and advertisements.
So, the relations between human users and other users are connected by events:
- Organization post events and provide some limitations.
- Volunteers and athletes will be able to register these events after administrator check it.
- Also, users will be able to contact each other by some methods.
Furthermore, the relationships between human and domains are similar: *Athletes and volunteers can register or cancel events *Organization can post, edit or cancel events *Administrators can verify events, ban users or events. *Everyone will be able to read news and advertisements.
Lastly, domain objects have relationships:
- Many to many:
- Event have many athletes
- Event have many volunteers
- Athletes have many events
- Volunteers have many events
- One to One:
- One event has one running results
- One to Many
- One organization has many events
- One athletes have many running results