acmutd / hackportal Goto Github PK
View Code? Open in Web Editor NEWA platform for hackathon event management.
Home Page: https://hackportal.hackutd.co/
License: MIT License
A platform for hackathon event management.
Home Page: https://hackportal.hackutd.co/
License: MIT License
Currently, the navigation menu for subpages under main pages such as Dashboard and About are displayed as sticker navigation bars. For mobile, this should be changed to a dropdown menu.
Change subpage navigation menu to dropdown format to save space and improve UI.
Attached is an image of how the navigation bar looks on mobile.
The challenges section is a section describing the various challenges or tracks that will be held during the hackathon along with the company or organization hosting the challenges.
The Challenges section should have buttons on the left with the name of the challenges. Upon pressing the buttons, there should open a card with a description of the challenge and prizes, if applicable.
This section should exist on the main page under the Explore section and look like the prototype:
A HackPortal user should be able to view all information about the hackathon regarding workshop materials, events, food, etc.
HackerPack must include the following:
Sidebar, dashboard, navigation bar
This application will exist at the route /dashboard/hackerpack
and exist as a dynamic page. A hacker must be able to view and go to each subsection of the page via the sidebar menu. A sponsor should be able to view the workshop materials that are required for their own workshop. The dashboard should be accessible at all times to access other sections of the dashboard.
Currently, some of the API endpoint that are restricted to event organizers and admins can be accessed by anyone due to the fact that there is no authentication process taking place at those endpoint.
Proposal solution:
The 'Sponsors' page should have the logos of all sponsors of a hackathon and a link to their pages, if applicable.
There should be a template for sponsor logos so they are organized on the page and sized based on their sponsor tier.
The changes will occur in ./sponsors/index.tsx
Material UI should install on npm install
Material UI had to be installed manually
Core
No response
No response
An organizer should be able to export all registration and scan data as a CSV file. The current implementation does not allow for that.
Allow super admins to export data as a CSV file. This data should include any scans and registration questions and answers added by an organizer
Add the button to the top of the stats at a glance page.
An organizer should be able to send out notifications to all hackers, organizers, sponsors, judges, or a selection of multiple. This functionality will also have multiple checks in place to ensure notifications are not sent accidentally.
An organizer must be able to do the following:
This notification functionality will exist at the route /profile
and be visible only to organizers.
Notifications currently do nothing when clicked.
Clicking or tapping notifications should result in the site being opened.
An admin should have the ability to add events to the calendar.
Add events to calendar functionality should be available to admins. Admins will give info about the event:
The calendar populated with a few events should look like the prototype. Note the horizontal orientation of the event is dependent on the Event Type
Sponsor links should open in a new tab.
Sponsor links currently redirect to the sponsor site in the same tab as HackPortal.
Core
Firefox, Chrome, Safari, Microsoft Edge
No response
The About section will have a general overview of the hackathon. Under this, there may also be an optional "Meet the Team" section with images, bios, and links to social media for the hackathon organizers.
Add headers for the description and Meet the team sections.
Add a template for the hackathon description.
Add a template for how a team member card should look.
The About section should look like the prototype. The prototype does not include cards for the team. They should be made similar to the ones in #28 and #29:
The Mentor Center section in Hack Center is a place where hackers can view where mentors are located while the hackathon is in progress. If the hackathon has not yet begun, the section will not be shown.
The Mentor Center has several key parts:
Attached is an example of what the Mentor Center section should look like.
Terraform is a tool that allows for easy DB setup.
Currently, Firebase setup must be done completely manually for HackPortal.
Setting up Terraform will make DB setup quicker and less painless for organizers.
The keynote speaker's scrollbar is permanently visible regardless of whether there is an overflow.
Modify the overflow style to account for sufficiently wide viewports.
Currently, only hacker applications are allowed, and this application is more used as a “HackPortal Registration” feature than a “Register for the Hackathon” one. This, in conjunction with customizable questions, will serve to render a separate registration form useless and further reduce the number of third-party apps an organizer needs to use.
Separate applications should exist for hackers, mentors, and volunteers, with configurable questions for each application.
A good bit of refactoring will need to take place, namely because of the addition of two new user types - mentor and volunteer, with permissions currently the same as a hacker. Stats at a glance info will need to be kept separate.
Dashboard should be hidden when signed out
Dashboard is visible when signed out
Profile
No response
No response
The current schedule page is not a reflection of the mockups in Figma. Redesign the schedule page so it is laid out in the same way as the mockups.
The schedule page should have everything displayed in Figma.
There should also be an option to export the schedule (downloadable .ics file)
Currently, HackPortal has no footer in the home page. There should be a footer in the home page to indicate the end of the page.
Create a footer.
Colors need to be changed for each component currently
Refactor code to pull color data from the config file.
A hacker must be able to check into the hackathon. This will be done using a user-specific QR code generated by HackPortal. Organizers must be able to check hackers into the event. The QR code should be time-sensitive. It should rotate every set amount of time for security reasons.
Hacker Check-In:
This functionality will only be available when the user is signed in and will exist at the route /dashboard/scan-in
. Hackers and Organizers should also be able to use this functionality for swag and food distribution.
Currently, the admin-side Stats at a Glance page displays the information of all users of HackPortal. This limits the information hackathon organizers have in regards to how many hackers got swag or food or what their demographics were, instead of anyone with an account or organizer info being added to the data.
There should be options to include/disclude certain people's stats from showing up in the data.
The options should include Admin, Super Admin, Hacker (these are people who have checked in and are not admin), and all accounts.
Example of issue:
141 hackers checked in (no way to differentiate checked-in admins from hackers).
Organizers may want info on just hackers who have checked in, not everyone with an account. This is an example of the data being displayed for everyone with an account.
The Spotlight section in Hack Center is a place where hackers can view events that are happening now if the hackathon is in progress. If the hackathon has not yet begun, random events that may interest the user will be shown.
The Spotlight section will have several key parts:
Attached is an example of what the Spotlight section should look like. Scrolling through events will be done by pressing the arrows.
A hacker should be able to ask questions directly to organizers. Organizers should have the ability to view a list of pending questions and claim questions and answer them.
This application will exist at the route /questions
and exist as a form. A hacker must be able to submit their question and receive a prompt indicating their question will be answered shortly.
The main page currently does not have space for a promo video and previous hackathon stats.
Add space for the promo video and hackathon stats on the main event page under the Application links.
Prototype of how the promo video space and stats space under the links should look like:
The current navigation routes are structured in a way that anyone can view anything, even if they are not signed in.
The navbar should be organized as follows:
The user should be able to view their profile picture in the App Header to access their profile page.
A hacker should be able to view a detailed calendar for the hackathon. This calendar will be organized in calendar format (as shown in the wireframe), should be exportable by the end-user, and should contain details about each specific event.
A calendar should include the following:
/schedule/index.tsx
and exist as a dynamic page. A hacker should be able to view the events and an organizer should be able to add or remove events.Super admins currently have the ability to search for a user and update their user type, but that is it. Adding the ability to view details about an individual user will increase the amount of information available to the organizers.
Add the ability to view all information about a user (registration info, scan info, etc.) when looking at their profile. This info should only be available to a super admin and reachable from the user dashboard.
This should be implemented in a way that minimizes database reads.
The dropdown menu on mobile currently does redirect users to the page they selected but does not update with the name of the page.
Fix the drop-down menu so it updates with the name of the page the user is on
On mobile, the Hackerpack sidebar text spacing is too compact, making it difficult to read and getting overlapped by the scroll bar.
Spacing must be fixed for the sidebar to ensure text isn't being covered by the scroll bar.
Attached is an example of what the sidebar currently looks like on mobile.
The Saved Events section in Hack Center is a place where hackers can view events that they have saved or marked as being interesting from the schedule page.
The Saved Events section will have several key parts:
The attached image is an example of what the Saved Events section should look like. Un-saving an event should be done by pressing/clicking the star icon next to the event.
Currently, the navigation menu has a solid grey circle next to the hackathon name as a placeholder. This should be easily replaceable with a logo of the hackathon by the hackathon organizers.
There should be an easy way to add a hackathon logo to the event site.
Ideal implementation (example):
Note: Navigation options should remain left aligned.
The Explore section should allow anyone to view what events and workshops will be taking place during the hackathon.
Create an Explore section with cards that contain the name of the event, the host of the event, The date, time, location, and hackerpack information link. This section should exist under the keynote speaker spotlight.
The explore section should be horizontally scrollable and look like the prototype:
The Your Team section in Hack Center is a place where hackers can add team members and set a team name.
The Your Team section has several parts:
This is an example of how the Your Team section would look if a team name is set but no members are added. Users should have the ability to add team members.
A hacker must be able to submit an application to register for hackathon. This application will include questions with biographical information that the portal will aggregate for organizers.
A hacker application must include questions for the following:
This application will exist at the route /register
and exist as a form. A hacker must be able to submit this application and receive an email confirmation of their responses.
There must be a check to see if a hacker has checked in before they can claim a swag or food item. If the hacker has already been checked in, they can claim the item successfully and the “Scan Claimed” notice will show up as normal. If they have not been checked in, there should be a notice stating that the user has not checked in, and the scan should fail.
There should also be a counter showing the number of failed scans that display in the Admin panel under “Stats at a Glance”
This feature (not including the counter) was implemented in the hackportal-hackutd fork of this repo. Refer to the downstream repository for implementation.
A hacker should not be able to claim swag or food unless they have been checked in. An admin should not be giving food or swag to someone not checked in.
Check-in
No response
No response
The schedule page is for hackers to know what is happening at what time at a glance.
The calendar will be shown as a one-day schedule. The day block will be split into 24 parts horizontally, each for an hour, and into 3 pars vertically, each for a distinct type of event. There will be axis markers (hour markers and event type markers) that clearly communicate what each section is for.
Embed a calendar into the page as a schedule.
For every event, there should be a description card informing the user about the event.
The card will be available to view after the user presses an event of interest on the schedule page. The description will contain the following:
The card will be to the right of the schedule and under the date scroll buttons. It will look like the prototype:
Currently, information that should be under the homepage is scattered under various nav routes. This information must be moved to the homepage to enable site viewers to easily access the information.
The home page should be organized as follows:
See Figma prototypes for organization and implementation
The hackathon event page should have a space for spotlighting keynote speakers with a picture of them, along with their names and a quick description.
Add a keynote speaker spotlight section to the main page under the promo video space.
The keynote speaker section should look like the prototype and be under the promo video section:
All users should be able to view their profiles. Profiles will have a general overview of a user and allow them to update their profile.
The user profile page will be accessible at /profile. It must include the following information:
General:
Organizer:
-
Sponsor:
-
In the future:
This functionality will only be available when the user is signed in and will exist at the route /profile
. Profile Picture default is the hackathon logo. Users should be able to edit profile info.
The camera should scan the QR code on iOS devices. The camera will preferably scan in the browser itself, but can be scanned by launching the camera app if necessary.
The Admin side QR code scanner freezes the camera immediately after the camera is started on iOS. This prevents the organizers from scanning QR codes on iOS devices. This issue persists across web browsers.
Check-in
Firefox, Chrome, Safari, Microsoft Edge
No response
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.