League Management allows users to run all of their sports leagues from one hub minimizing the amount of time, energy, and resouces required.
This repository contains the collective effort and capstone project of 6 students that will graduate from Lambda School’s Full Stack Web Development program in October 2019.
Listed alphabetically:
| Alex Martin | Eric Fleming | Eric Whitcomb | Griffin Huth | Humberto Raya Jr | Jesse Anderson |
|---|---|---|---|---|---|
- Create your environment variables at
/backend- Set up
.envfile in/backend - Inside the
.envfileJWT_SECRET=SomeRandomStringediting the Secret with your random string
- Set up
Note: The app will crash without these variables defined
-
Set up the database
knex migrate:latestknex seed:runto populate the database with seed data
-
Inside
/backendinstall all dependencies and spin up the server$ yarn && yarn server -
Inside
/frontendinstall all dependencies and kick off the Front End$ yarn && yarn start
Now just open http://localhost:3000 to visit the Front End, or query the server endpoints directly at http://localhost:4000
Our tech stack is React and Context API on the Front End and Node, Express, and PostgresQL on the Back End. We chose our Front End because we wanted a fast rendering framework that when using Context API could hold state without prop-drilling and we had never used Context API before. We chose our Back End because we wanted to keep the app unified using JavaScript throughout. Node and express would allow us to do that easily and PostgresQL allowed us to have a relational database that could maintain better than some other options such as SQLit3.
From the root directory:
cd frontend && yarn start - Runs the Front end client
cd backend && yarn server - Runs the Back end server
We did a lot of manual testing to make sure everything works correctly. Our main testing tools were Postman, terminal logging, and the Chrome DevTools. Our Back End testing quick guide can be found here.
These reside in the /backend/.env file, which is not in the github
| Variable | Description |
|---|---|
JWT_SECRET |
YourRandomString |
Note: The app will crash without these variables defined
Front end infomation can be found in the Front End README
Back End information can be found in the Back End README
Security is very important to us. We will never store passwords in plain text. Authentication is handled through the use of JSON Web tokens, and user passwords are salted and hashed for extra security. Payment transcations are conducted using Stripe so that credit card information is never stored on our server.
Users are not required to sign in to view league search feature and the public calendar.
All other features required the user to be signed in.
- You can create a new league
- You can click on
Your Leaguesin the left-hand corner - All leagues that you are an admin are then displayed
- Clicking on the league you want to go to will load the league and bring you to the league details page
- Click
SELECT FOR $5/MObutton on the home dashboard after signing in - Enter a league Name and click
Create Leaguebutton - Enter credit card information and click
subscribe for $5/mobutton - Edit default league settings to alter your league however you want it and click
NEXTbutton - Enter your team names making sure you end with an even number of teams and click
NEXTbutton - Click
GENERATE SCHEDULEbutton - You will then be brought to the league details page for your league
- League details page will show information about the league
- In the left-hand bar click
Teams - Click on the edit icon in the upper right-hand corner for the team you want to edit
- Input the updated information and then click
SAVE TEAM
- In the left-hand bar click
Calendar - The buttons in the top of the calendar render the calendar differently depending on which view you would like to see
- To edit the games on the calendar click the green edit button in the upper right-hand corner
- The games will render with an orange border and grey background showing that they are now drag and dropable
- Then just drag and drop games around the schedule until you are done editing the calendar
- Then click the green checkbox button in the upper right-hand corner
- These changes are now reflected in all versions of this calendar
- In the left-hand bar click
Cancellation Requests - All pending cancellation requests will be displayed in the left-hand column
- All approved cancellation requests will be displayed in the center column
- All denied cancellation requests will be displayed in the right-hand column
- Games that are pending request have the option to
AcceptorDenythe request - The request goes in the appropriate column after deciding on the request
- You can click on
Your Teamsin the left-hand bar - Then choose any team that you coach
- After you choose a team, the coach dashboard will render with the team calendar and the coach cancellations
- In the left-hand bar click
Calendar - All of your team's games have a yellow background color
- The rest of the league's games have an orange background color
- In the left-hand bar click
Cancellations - This will render the ability to ask for a cancellation for any game on the schedule
- Once requesting a cancellation request, it will be placed in the pending cancellation requests column
- Once the league administrator approves or denies a request, it is placed in the proper column
- Click the person icon in the upper right-hand corner next
- Click
User Settings - Once the page renders, the textfields are read-only until the user hits the
UPDATE INFORMATIONbutton - Then the textfields can be edited
- Once everything has been filed out to the user's liking, hit
SUBMIT UPDATES - If the user would like to change their password then they can hit the
CHANGE PASSWORDbutton - Then the user will be walked throught the process of changing their password
Currently contributing is only availble to members of our team. If this changes it will be updated in the README
If something does not work, please file an issue
