You must use Angular 2 to implement this project. Final demo must be done using a public URL (e.g. Cloud9).
Most games have online multiplayer modes with cooperative or adversarial play. Finding good teammates that you enjoy playing with can be a challenge. Finding new people to play with or against who share your playing style can enhance your multiplayer experience. This app will help you connect with other players who share your play style, platforms and games.
Following specifications are a rough outline of the basic functionality. For any feature that is not specified (or not clear), please imagine being a user and come up with a description of how you would like to to function.
Front page must display the purpose, member count, a login button, content of the LFG page (see below) and optionally, space for advertisements for monetization and any other promotional information that you wish to display.
Login page must allow creating new accounts, logging in with an existing account, logging in with a 3rd party account (Google, Facebook, Steam etc) and resetting the password.
Each page may have some content that is shown to any visitor as well as some content that is shown only to an authenticated user. Authenticated users are shown both content.
Account creation page must allow entering an email, and a mechanism to verify the email. Once the email is verified, the user must be allowed to create a profile.
Profile creation page must only be shown when the email address is verified. Profile must include following: profile picture (default picture if an image is not uploaded), age, (gender?), a mechanism to upload a profile picture (file size must be limited), player ids for each platform, regular play times (including time zone), use of a microphone, games for each platform, play style for each platform, preferred character for each game.
Games page must list all the games that are supported. Each game must have a representative image, platforms and the number of members (for each platform) who have indicated that they play it, selection of characters available in each game.
Clicking on a game must show more details about the game. For authenticated users, it must show the list of player ids that have shown an interest in finding teammates. It also must show a button to add this to your playlist if it is not already there.
‘Looking for a group’ (LFG) page must allow authenticated users to post a specific team request, which includes game, type of team, match or event, start time and or duration and a short description. This page must also show current requests in chronological order.
LFG page must include a filtering mechanism where you can filter team requests by platform and game.
For authenticated users, LFG page must also show their past requests and the ability to repost a request with a new time. A request must not be editable once posted. All requests are removed from LFG page after their start time/duration has passed. A user can remove their own requests at any time.