Entity relationship diagram and entity life history diagramwww
Football Database Website
By
CE301 Interim Report
Table of contents
Scope of the project…………………………………………………… 3
Glossary……………………………………………………………….. 3
System Requirements………………………………………………….. 7
External Interface Requirements…………………………… 7
Submit bet use case………………………………... 8
See bet results use case……………………………. 8
User Interface Design……………………………………… 13
Methodology…………………………………………………………… 14
Conclusion…………………………………………………………………….. 16
Appendix……………………………………………………………………… 17
Figure 3 – Top Level Architectural Diagram……………………………………….10
Figure 4 – Entity Relationship Diagram……………………………………………12
The purpose of this report is to provide an overview of the project process towards the end of the autumn term. The information described is represented by the completed and future goals of the project, the revised GANTT, a review of the background reading used for expanding the knowledge over the technologies being used, the complete system requirements and system design specifications, the methodology being adopted, the objectives already achieved and the plan for continuing with the project over the next term.
Scope of the project
| Term | Definition |
|---|---|
| Football | A game played on a rectangular field with net goals at either end in which two teams of 11 players each try to drive a ball into the other's goal by kicking, heading, or using any part of the body except the arms and hands. The goalie is the only player who may touch or move the ball with the arms or hands. |
| Fixtures | a day and usually a time agreed for a sports event |
| Virtual Money | An online currency created to reward of a game with some fictional amount of money |
| Football Statistics | Summarized data about several matches grouped together by a single purpose (e.g. Season, Competition, Period of time) |
| Goal | a point scored in some sports, such as football or hockey, when a player gets the ball into this area |
| World Cup | International Competition in which every nation is represented by a team and they all have the goal of winning the final round of the competition. It takes place every 4 years and is hosted by a different country which is chosen by an international forum. |
| Champions League | An international club competition organized for the best placed teams in every European national championship which takes place every year, starting in August and ending in May, next year. |
| Europa League | An international club competition organized for the best placed teams under the Champions League playing teams, or national cup winners. It takes place every year, starting in August and ending in May, the following year. |
| Bet | to risk money on the result of an event or a competition, such as a horse race, in the hope of winning more money |
| Match | a sports competition or event in which two people or teams compete against each other |
| Standings | reputation, rank or position in an area of activity, system or organization |
References
http://www.footballdatabase.com/ Retrieved November 26, 2011
Romanian website which contains many kinds of statistics about the Romanian National league, its teams and its players. It was used to retrieve ideas about the various statistics that can be calculated using the database.
http://www.bet365.com/home/FlashGen4/WebConsoleApp.asp? Retrieved November 27, 2011
Software Requirements document outline from last year team project, used for creating a design document.
http://courses.essex.ac.uk/ce/ce319/Lectures/ce319w4b%202011-12.ppt, Iain Langdon and Sam Steel Retrieved October 30, 2011
Rented this book for further reading about the MVC engine is .NET Framework and learn new functionality
http://www.w3schools.com/sql/sql_constraints.asp, Retrieved November 13, 2011
One last secondary goal is the interaction between the user and the system. Most database-based websites are very static. They only rely on data request and visualization. The user shall be able to interact with the website in its own way, especially in a “match details” webpage, where the user should be able to rate the players and create notes about them. However, this kind of interactivity is considered a secondary goal and it will only be implemented if time allows it.
GANTT Chart
(Figure 1 – Project GANTT Chart)
Progress to date
On the right side panel of the website, a few places will be reserved for advertisements and Facebook links. The Facebook links will provide the user who has a Facebook account to post a comment about a webpage on his Facebook Wall.
Functional Requirements
| Use case name | Details view |
|---|---|
| Trigger | User presses a player, team, competition, nation, user link |
| Precondition | The user has accessed the website and want to find more details about a specific resource |
| Basic Path |
|
| Alternative Paths | These links are available all over the website in all webpages and in every panel |
| Post-condition | The requested page opens |
| Exception Paths | The user can press the browser back button to cancel its last access and go back to the previous page |
| Use case name | Search |
|---|---|
| Trigger | User presses on the search textbox at the top-left of every webpage |
| Precondition | The user wants to search for a particular item for faster access |
| Basic Path |
|
| Post-condition | The page shows the main page of the item found |
| Exception Paths | The user can press search again starting from the page he already accessed, or press the browser back button and start searching again |
| Use case name | Bet Results |
|---|---|
| Trigger | User logs into his account to see how much virtual money he won following the matches he betted on being played |
| Precondition | The user submitted some bet choices and the matches he betted on are finished |
| Basic Path | |
| Alternative Paths | The user clicks on his login name in the user standings page |
| Post-condition | On the front page he can see his latest bet results, the virtual money he lost or won, the score and his overall rank |
| Exception Paths | The user can press his browser back button |
The data flow diagram is shown below:
(Figure 3 – Top Level Architectural Diagram)
| PlayerMatch table | |||
|---|---|---|---|
| Data item | Type | Restrictions | Keys |
| PlayerID | bigint | not null | PK, FK references ID in Player |
| MatchID | bigint | not null | PK, FK references ID in Match |
| TeamID | int | not null | FK references ID in Team |
| Event | enum | not null, {lineup, goal, penalty, assist, yell, red, subin,subout} | |
| Minute | smallint | interval 1-120, >120 for penalty shootout | PK |
| PositionID | int | not null | FK references ID in Position |
| MatchBet table | |||
|---|---|---|---|
| Data item | Type | Restrictions | Keys |
| UserID | int | not null | PK, FK references ID in User |
| MatchID | bigint | not null | PK, FK references ID in Match |
| ScoreHost | tinyint | ||
| ScoreVisitor | tinyint | ||
| 1X2 | enum | {1, X, 2} | |
The entity relationship diagram presented in the following figure describes the relationship between the tables presented above:
(Figure 4 – Entity Relationship Diagram)
Home
Matches
Transfers
Teams
Search
Compare
Game
Feedback
Facebook link to the football database page on Facebook
Game Advertisement
Any number of credits can be played for a bet
For getting a wrong result the credits are lost
Getting an event right for a player in a match bet: 4 times the bet
Getting event right for a player in a half match time: 8 times the bet
The framework chosen for this project is the AGILE methodology, because it better reflects the real-life scenarios applied for software development in the present time, by most companies in this industry. The SCRUM methodology is used, having a SCRUM delivery time of two weeks.
The final delivery is tested during the last 3 days of the two week SCRUM period. If planned developments remain unfinished after a two week period, they are being added to the plan for the next SCRUM period, without any other tasks being delayed. However, if a second consecutive delay occurs, the whole project plan is being updated to include the delay.
Longer period objectives were completed after the Initial Report and are described in the sections above: System Requirements, containing use cases and the data flow diagram for database, and the System design which includes the entire table specification for the database and the data contained in the Website master page and in the individual webpages.
Also, the requirements and the design was discussed and agreed with my project supervisor during the weekly meetings after the respective reports were completed.
Sample data will be created over the next week, so the constraints and the triggers can be verified for errors. Since complicated triggers were implemented, which update entire tables at once, they have to be thoroughly tested for errors, so the data can be confirmed to be accurate.
The last part of the autumn term will be used to create the webpages that are using the stored procedures explained in the first paragraph. These webpages will only contain some sample data so the general layout of all the webpages can be created and tested.
Conclusion
After concluding the meetings with my supervisor, I am certain my project is heading in the right direction. The requirements and the design documents will be more detailed before each phase of the project, as described in previous chapters. Also, testing and fixing shall be taken seriously after each completed phase of the website, as I am aware quality assurance is of high importance in software development.
| Player table | ||||
|---|---|---|---|---|
| Data item | Type | Restrictions | Keys | |
| ID | bigint | unique, not null, auto-increment | PK | |
| FirstName | varchar(20) | not null | ||
| LastName | varchar(20) | not null | ||
| NationID | int | not null | FK references ID in Nation | |
| ClubID | int | FK references ID in Team | ||
| Height | decimal(3, 2) | |||
| Weight | smallint | |||
| BirthCity | varchar(20) | |||
| BirthDate | date | not null | ||
| Age | tinyint | Current date-Birth date, not null | ||
| Retired | bit | not null, 1 or 0 | ||
| StaffID | smallint | not null, default: 0 | FK references ID in Position | |
| Team table | ||||
| Data item | Type | Restrictions | Keys | |
| ID | int | unique, not null, auto-increment | PK | |
| Name | varchar(20) | not null | ||
| NationID | int | not null | FK references ID in Nation | |
| Type | bit | not null, 1 or 0 | ||
| City | varchar(20) | |||
| StadiumID | int | FK references ID in Stadium | ||
| ParentTeam | int | FK references ID in Team | ||
| Points | int | calculated from Match table | ||
| MonthPointChane | int | calculated from Match table | ||
| YearPointChange | int | calculated from Match table | ||
| CompetitionID | int | FK references ID in Competition | ||
| Transfer table | |||
|---|---|---|---|
| Data item | Type | Restrictions | Keys |
| PlayerID | bigint | not null | FK references ID in Player |
| TeamFrom | int | not null | FK references ID in Team |
| TeamTo | int | not null, last transfer equal to player.teamID | FK references ID in Team |
| Date | date | not null | |
| Amount | int | default: 0 | |
| Season table | |||
|---|---|---|---|
| Data item | Type | Restrictions | Keys |
| ID | int | unique, not null, auto-increment | PK |
| DateStart | year(4) | not null | |
| current | bit | 1 or 0 | |
| Position table | |||
|---|---|---|---|
| Data item | Type | Restrictions | Keys |
| ID | smallint | unique, not null, auto-increment | PK |
| ShortName | varchar(10) | not null | |
| Name | varchar(25) | not null | |
| User table | |||
|---|---|---|---|
| Data item | Type | Restrictions | Keys |
| ID | int | unique, not null, auto-increment | PK |
| First Name | varchar(20) | ||
| Last Name | varchar(20) | ||
| varchar(30) | not null | ||
| Password | varchar(30) | not null | |
| DateOfBirth | Date | ||
| Score | int | not null, default:0 | |
| WeekScore | int | not null, default:0 | |


