Skip to content

pankeelshah/LeagueofData

Repository files navigation

LeagueWebsite

Group Members:

  • Pankeel Shah - shahx317
  • Nikhil Tammana - tamma008

Project Type: Plan A

Link to live Application:

Link to Github Code Repository:

List of Technologies/API's Used:

  • Bootstrap
  • Bootstrap Templates
  • Flask
  • SQLAlchemy
  • WTForms
  • Riot Games API
  • Google News API

Detailed Description of the project:

League of Legend's web application created using the Flask framework which allows users to get many different types of League of Legends information, and also store their own information.

On the Home page, users can search for information on specific League of Legend's players and get statistics on the different game modes that they play, and their tier, rank, wins, losses and win rate in those game modes.

On the Leaderboard page, users can view the current top of the ranked leaderboard and see the top 300 players on the ladder at the current moment.

On the Free Rotation page, users can view the current free champion rotation. This page shows a list of the champions that are available and free to play for the current week. These champions can be clicked on which will lead to a wiki page with more information on those champions.

On the News page, users can view cards displaying the latest League of Legends articles. There is also a search bar which allows users to search for specific articles. These articles can be clicked to visit the full link.

On the Login page, users can sign in to their account. If the user does that have an account, they can click the create an account link. On the Create An Account page, users can create a new account. All created users have a unique email and summoner name. Once a user has logged in, two new tabs are available: Champions and Players.

On the Champions page, users can keep track of their favorite champions. They can add or remove champions to update their current favorite champions. This list of favorite champions is saved in the database.

On the Players page, users can keep track of their favorite players. They can add or remove players to update their current favorite players. This list of favorite players is saved in the database.

To aid with testing purposes we have provided additional information which may be used to verify website functionality.

Already Created Accounts(username, password):

Feel free to create your own accounts. To create an account you must provide a valid summoner name. You can find a list of summoner names in the Leaderboard tab.

When adding champions to your favorite champions list, you must provide real champions. Here is a list containing all 147 League of Legend champions.

When adding spells to your favorite spells list, you must provide real spells. Here is a list containing all spells.

List of Controllers and their short description:

  • / - Default which redirects to /index.
  • /index - Default home page, which uses JavaScript to search and display results.
  • /login - Handle's login form validation and checks database for user.
  • /logout - Logs out user and makes changes in database.
  • /signup - Handle's signup form validation and adds user to database.
  • /news - Uses onLoad() function to call JavaScript and display news.
  • /leaderboard - Uses onLoad() function to call JavaScript and display leaderboard.
  • /rotation - Uses onLoad() function to call JavaScript and display current free rotation.
  • /champions - Uses form validation to check for input, make sure that champion exists, and check weather the champion is in the database already. Depending on if user has clicked add or remove, adds or removes the champion from the database.
  • /players - Uses form validation to check for input, and make sure that the champion is in the database already. Depending on if user has clicked add or remove, adds or removes the player from the database.
  • /spells - Uses form validation to check for input, and make sure that the spell is in the database already. Depending on if user has clicked add or remove, adds or removes the spell from the database.
  • /proxy/<region>/<summoner_name> - Makes an API call to Riot's API to get statistics on a specific player.
  • /proxy/news/<type> - Makes an API call to Google News API to get the latest League of Legends articles.
  • /proxy/challenger - Makes an API call to Riot's API to get the top 300 players on the leaderboard.
  • /proxy/rotation - Makes an API call to Riot's API to get the current week's free champion rotation.
  • /proxy/favoritechampions - Gets the current users favorite champions from the database.
  • /proxy/favoriteplayers - Gets the current users favorite players from the database.
  • /proxy/favoritespells - Gets the current users favorite spells from the database.

List of Views and their short description:

  • base.html - Base template which contains header and footer.
  • champions.html - Only available when a user is logged in. User can add and remove their favorite champions. This will display their favorite champions which can be clicked to visit a website with more information on them.
  • index.html - Default home page where League of Legend players stats can be searched.
  • leaderboard.html - Displays top 300 League of Legends players on the Summoners Rift Ranked 5v5 leaderboard.
  • login.html - Login page for users to log-in to website.
  • news.html - Shows the latest news articles associated with League of Legends.
  • players.html - Only available when a user is logged in. User can add and remove their favorite players. This will display their favorite players which can be clicked to visit a website with more information on them.
  • rotation.html - Shows the current free rotation of champions that is available for the current week. The champions can be clicked to visit a website with more information on them.
  • signup.html - Signup page to create a new account.
  • spells.html - Only available when a user is logged in. User can add and remove their favorite spells. This will display their favorite spells which can be clicked to visit a website with more information on them.

List of Tables, their Structure and short description:

  • champion - Holds all user's favorite champions along with which user they belong to.
  • player - Holds all user's favorite players along with which user they belong to.
  • user - Holds all registered users and keeps track of currently logged in user.
  • spell - Holds all user's favorite spells along with which user they belong to.

Structure / Description

  • There are four tables altogether. The main table is the User table. The other three tables: champion, player, and spell are relationship tables within Flask-SQLALCHEMY. These relationship tables allow for easy access to the data stored through the User table. This is very helpful and nescessary for easy additions, removals, and updates to the database.

References/Resources:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published