Skip to content

Latest commit

 

History

History
71 lines (50 loc) · 3.29 KB

README.md

File metadata and controls

71 lines (50 loc) · 3.29 KB

Russia World Cup 2018

Documentation

The main theme of this project is the World Cup in Russia. Match data is provided by Football-Data.

Frameworks and technologies used on the backend:

  • ExpressJS
  • MongoDB for storage
  • Redis for caching
  • Authentication is implemented through JsonWebTokens.

Frameworks and libraries used on the frontend:

  • React for view management
  • Redux for state management(also react-redux bindings and redux-thunk middleware)
  • Webpack
  • Babel
  • Moment
  • Normalize.css

Available functionality

Non authenticated users are only presented with a login/register form and credits, mentioning used assets and their artists. Once a user logs in they get access to the Dashboard, which shows all of the 32 teams in a grid along with their record of wins, draws and losses. There is a team details page, which shows the team's crest and the matches they've competed in, and a match details page, which shows its outcome and available stats, such as half-time score, full-time score, etc. A user can also favourite their supported teams and view only their stats in a concise manner at their profile page. Administrators have access to a list of all users and can edit them and delete them.

Screenshots

Go try it out yourself at https://russia-wc.js.org/!

Requirements

General requirements

  • At least 3 different dynamic pages (pages like about, contacts, etc. do not count towards that figure)
  • Use React.js for the client-side
  • Communicate to a remote service (via REST, sockets, GraphQL, or a similar client-server technique)
  • Implement authentication and user roles
  • Implement client-side routing
  • Demonstrate use of programming concepts, specific to the React library: stateless and statefull components, bound forms, synthetic events, etc.
  • Brief documentation on the project and project architecture (as .md file)

Other requirements

  • Apply error handling and data validation to avoid crashes when invalid data is entered
  • Prevent security exploits (XSS, XSRF, Parameter Tampering, etc.)
  • Handle correctly special HTML characters and tags like <script>, line breaks, etc.
  • Use a source control system, like GitHub

Optional Requirements

  • Use responsive design – Bootstrap, MDL, CSS Grids or another method of your choice
  • Nice looking UI, supporting of all modern and old Web browsers
  • Good usability (easy to use UI)

Bonuses

  • Use a state management library like Flux or Redux
  • Deploy the application in a cloud environment
  • Use a file storage cloud API, e.g. Dropbox, Google Drive or other for storing the files
  • Connect to an external API, like Google Maps, AccuWeather, etc.
  • Use of features of HTML 5 like Geolocation, Local Storage, SVG, Canvas, etc.
  • Anything that is not described in the assignment is a bonus if it has some practical use