- LaceUp is a place where users can connect with people who want to play sports together. Users can find other players of the same skill level to play against for just the right amount of challenge.
- Users can create events, or join already existing events specific by park and event type. When joining an event, users are able to see the number of teams required for the event, and with the click of one button, lace up for their team of choice!
Live link to web application: LaceUp
- LaceUp is built upon a MongoDB database, Express web application framework, React-Redux frontend, and Node.js backend.
- Users may explore events without being authenticated. However, an account is required to create an event and to join an event.
- Errors are rendered if a user already exists, or if a password is not valid.
- Backend user authentication includes the use of a 'passport' which generates a web-token that is required to take protected actions (such as creating an event).
router.delete(
"/delete/:id",
passport.authenticate("jwt", { session: false }), //user must be logged in and a web token must be present to delete user.
async (req, res) => {
await db.collection("users").deleteOne({ _id: ObjectID(req.params.id) });
res.json("deleted");
}
);
- Front end user authentication included error handling, creation and removal of a web token with user login and logout. Additionally, users persist, even if the page is refreshed.
- Vistors to the website have access to an explore page, a centralized location showing all events happening in a specified area.
- From this view, users may select a park and view all events within the park.
- The map is displayed through Google Maps API.
- Any events a user joins or creates is updated into the schedule tab of profile in real time. Clicking on the event will create a link to the event show page.
- Any events that have passed are present in the history tab, so players can reminisce about their big win over city rivals.
- Users may update their information, to remain up-to-date with their favorite sports, home court, bio, or avatar. The ability to change avatar was done through the use of AWS buckets.
- Once a user has joined an event, he/she can post in that event to organize practicalities such as who is bringing the baseball (or the beer).
- Users can create, update, and delete their posts on an event.
- Users can be ranked based on their performance in an event. This includes statistics such as their win/loss ratio, or total number of events they have participated in.
- Users can be commended for good sportsmanship, professionalism, or being an overall great player to have on your team.
- Users can create clubs, a way to create a community, and house a core group of players for various events throughout their city. Clubs are ranked, based on the total number of wins and losses that teams within the club has.
- In addition to one-off events, users can create tournaments. Tournament brackets will be seeded by us based on the player's/team’s skill level.
- Tournaments may have an optional fee, resulting in prizes being distributed to the winner’s accounts.