-
Notifications
You must be signed in to change notification settings - Fork 2
Competitions Portal
William Kim edited this page May 11, 2024
·
5 revisions
Make sure that you have the acm-ai-site and acm-ai folders open in your workspace.
- Navigate to MongoDB and set up your account with your acmucsd email if you haven't already
- Verify that your local cluster is set up. Refer to this README https://github.com/acmucsd/acm-ai-api
- In the acm-ai-api root directory, execute
npm run dev
which should spin up the database and server localhost:9000# - In the acm-ai-site root directory,execute run
npm run start
which should launch the app on localhost:3000
The goal of the competitions portal is to provide a way to streamline how ACM AI carries out its annual competitions. Here's a couple of screenshots of the work in progress as of Spring 2024.
- Provides summary statistics of a user's team including a score history graph
- Displays the members in the team
- Gives users ability to upload a submission with a description. In previous years, the users were able to add tags however there isn't a use for it yet so the tag is being used to record the name of the person who submitted.
- Users can search for a team to join via a shareable passcode
- Leaderboard of rankings
- Ability to view submission history and match history
- The biggest one is to OPTIMIZE the portal
index.tsx
state management. Due to time constraints, we were trying to push our an MVP so there was a bit of prop drilling. Although it's not extensive, it's not fun to look at and work with. React context might be a viable solution to help make state management and development much easier for future iterations. - Secondly, the app needs to avoid frequent refreshes on recurrent page navigations within the portal. Find a way to cache responses to mitigate api requests.
- No testing was done yet for the submission uploads or submission history since the test eval servers were never hosted (sad)
- The match history page has no UI at all at the moment
The idea is that upon first page load, the app needs to check for user authentication. If the user isn't registered for the competition, they receive a prompt to participate. If verified, the user has the ability to form their own team or join one.