The account will bind to event (#9).
User have to register again for another event. For implementation, it still uses firebase built in auth.
No account for the event organizer, but a password is needed for accessing the event admin page.
Flux architecture
Flux architecture (#17) is merged to the project (#40). Now components will uses $dispatch to update changes and receive changes directly from the props and data which are from vuex. More example will be provided later.
Firebase Schema
The user part is merged to member in the event as the account will bind to event.
Please refer to #16.
Pages & Routes
There will be following pages in our app:
Home Page
Event Page
Event Admin Page
Team Page
Team Management Page
User Page
Login Page
Here are the expected content of each pages:
1. Home Page (/)
purposes
Allow user to input/select an event to enter
Allow event organizer to create an event
linkage to other page
Login Event - go to Login Page of that event
Create Event - popup to enter a password and then go to Event Management Page
components
EventSearch.vue
purpose: Search Bar with suggestion upon user input
EventList.vue
purpose: Display the most three recent events
linkage: go to Event Page
2.Event Page (/event/:eventId)
purposes
Show event description
Allow user to view teams
Allow user to create team
Display user status
linkage to other page
Team List Click - go to Team Page
User Status Click - go to User page
Create Team - create a team with the name {creator}'s team and then go to Team Management Page
components
EventOverview.vue (also used in Event Admin Page)
purpose: Display the data of the event, including name, description, max, min team size; display the statistic of the event, including number of teams, number of members
TeamList.vue (also used in Event Admin Page)
purpose: Show all teams
linkage: go to Team Page
innerComponent: RadarChart.vue - display the team's overall skillset
TeamFilter.vue
purpose: interface to filter teams, update filtering rules to state tree
BasicUserStatus.vue
purpose: Show basic user status including user name, current team, etc.
linkage: go to User Page
DeadlineCounter.vue
purpose: Show event deadline status
3.Event Admin Page (/event/:eventId/admin)
purposes
Manage the event
Overview of the event
components
EventOverview.vue (also used in Event Page)
purpose: Display the data of the event, including name, description, max, min team size; display the statistic of the event, including number of teams, number of members
EventModificationForm.vue
purpose: Edit the event, including name, description, labels, max, min team size
TeamList.vue (also used in Event Page)
purpose: Show all teams
4.Team Page (/event/:eventId/team/:teamId/)
purposes
View Team Members
View Team overall schedule & skillset
Request to join the team
linkages to other page
Manage - go to Team Manage Page, only visible to the leader
User Click - go to User Page to view the user
components
TeamOverview.vue
purpose: Display team overview including name, description, leader name, number of members, skillset and schedules
innerComponent: RaderChart.vue - display the team's overall skillset;
Schedule.vue
purpose: Show team schedule
MemberList.vue
purpose: Display all member
linkage: go to User Page
innerComponent: UserStatus.vue - display the user status
JoinRequest.vue
purpose: Provide a join request form. Member can input a message.
Account
The account will bind to event (#9). User have to register again for another event. For implementation, it still uses firebase built in auth. No account for the event organizer, but a password is needed for accessing the event admin page.
Flux architecture
Flux architecture (#17) is merged to the project (#40). Now components will uses $dispatch to update changes and receive changes directly from the props and data which are from vuex. More example will be provided later.
Firebase Schema
The user part is merged to member in the event as the account will bind to event. Please refer to #16.
Pages & Routes
There will be following pages in our app:
Here are the expected content of each pages:
1. Home Page (/)
purposes
linkage to other page
components
2.Event Page (/event/:eventId)
purposes
linkage to other page
components
3.Event Admin Page (/event/:eventId/admin)
purposes
components
4.Team Page (/event/:eventId/team/:teamId/)
purposes
linkages to other page
components
5.Team Management Page (/event/:eventId/team/:teamId/manage)
purposes
linkages to other page
components
6.User Page (/event/:eventId/user/:userId/)
purposes
components
7.Login Page (/event/:eventId/login)
purposes
linkage to other page
components
Current design user manage their data with in User Page. It is not sure whether we will have User Management Page in the future.