GithubHelp home page GithubHelp logo

.net-maui-fantasy-football-app's Introduction

.NET-MAUI-Fantasy-Football-App

Extensive .NET MAUI fantasy football application made with love and dedication.

It started with intensive research into the beautiful, robust, and modern .NET MAUI framework.

It continued with many hours of debugging and figuring out compatibility issues, that arise as a result of MAUI's native cross-platform compatibility, with other .NET frameworks such as Entity Framework.

I decided I wanted to be able to distribute this application to any user around the world and thus needed a way to facilitate users accessing centralized data. Hence why I decided to create an API; I also needed a way to authenticate users and grant database access to information based on user-provided credentials, and so took a passionate interest in OAuth and authentication.

While I did not end up implementing OAuth in the sense of permitting users to login with Microsoft, Facebook, Google, etc. my custom authentication protocol works in the same way OAuth does. Might add traditional OAuth in the colloquial sense in the not too distant future.

Technologies features used/implemented:

-.NET MAUI w/Animations and countdown timer

-Entity Framework

-SQL Express/SQL Server with many one-to-one, one-to-many, and many-to-many relationships.

-.NET Web API custom authentication/Resource controller

-Modifiable password generator

-Complex network of interdependent buttons, functions, and API requests which cohesively form seamlessly functioning application

-MailHog

-Postman

-Forgot password capability with password reset email using Gmail SMTP

-User registration

-User login

-User create, update, delete leagues, create, update, delete teams, add drop players

-All redeemable actions sent to API controller/database with data returned in real time and updated in the client view in real time

More to come... :)

12/14 added players to my app (not app users, but football players). I didn't reference any player or team namesakes of actual players/teams since the NFL has strict licensing rights and when I reached out to them, they informed me that each player has to individually approve of their namesake being used.

To circumvent this, I randomly generate a list of 1248 names from a list of 1500+ first names and 120+ last names, which I uniquely assign to 238 QBs, 291 RBs, 436 WRs, 184 TEs, 99 Ks, plus 32 team defenses.

Since we don't want my API controller to generate a NEW list of players each time a new league is created, my API checks the db for existing players. If none exist, my algorithm deploys to generate 1280 total players, and otherwise, my API copies the list of 1280 existing players (per league), removes the league ID # formerly associated with each of those players, and assigns to each copied player the league ID # of the newly created league. This way users of my app can select from a consistent, non-varying pool of players regardless of which fantasy league they play from. Fun logic to implement. :)

12/17 added SEND EMAIL capability to send password reset emails using a reset token when a user selects "Forgot My Password". Also added "Join League" functionality to my front end which already existed as an endpoint capability in my API, but is now integrated with the front end.

12/21 Got backend API and database fully up and running in Azure cloud! :) Submitted front end client to Microsoft App store and thereafter added logout capability as well.

STANDARD INSTALL SCENARIOS AND RETURN VALUES FOR INSTALLING MY APP FROM THE APP STORE:

-Installation cancelled by user: The install operation was cancelled by the user. Return Code 0

-Application already exists: The applicaton already exists on the device. Return Code 1

-Installation already in progress: Another installation is already in progress. User needs to complete the installation before proceeding with this install. Return Code 2

-Disk space is full: The disk space is full. Return Code 3

-Reboot required: A restart is required to complete the install. Return Code 4

-Network failure: Provide custom return code values for various network related failures. Return Code 5

-Package rejected during installation: Package rejected during installation due to a security policy enabled on the device. Return Code 6

-Installation successful: Installation has been successful. Return Code 7 PRIVACY POLICY https://app.termly.io/document/privacy-policy/1072374e-2247-45d2-9899-7f8a4cca91e5

NOTE: I am no longer paying to maintain the Azure channel on which my SQL database was hosted and thus can no longer utilize app features such as create-account or login, which are required to access the fantasy-football portion of the app.

Screenshots of the application (video demonstration in LinkedIn): 2024-02-07 19_31_52- 2024-02-07 19_33_54- 2024-02-07 19_32_58- 2024-02-07 19_33_42- 2024-02-07 19_33_31- 2024-02-07 19_34_01-

.net-maui-fantasy-football-app's People

Contributors

danwiener avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

iamenoch chinjila

.net-maui-fantasy-football-app's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.