-
Notifications
You must be signed in to change notification settings - Fork 0
Create events engineering project #113
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
ericswpark
wants to merge
2
commits into
main
Choose a base branch
from
events-project
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,124 @@ | ||
| <!-- | ||
| Please note this template is only meant to be used in the context of engineering. | ||
| If you are a non-engineer, please reference other documents within your respective | ||
| division for a better idea of a documentation standard. Non-engineering projects | ||
| should not use this template. | ||
| --> | ||
|
|
||
| # Events Design Doc | ||
|
|
||
| - **DRI**: @ericswpark | ||
|
|
||
| ## Objective | ||
|
|
||
| Display and manage all events hosted by Purdue Hackers. | ||
|
|
||
| ## Background | ||
|
|
||
| ### Problem | ||
|
|
||
| Events hosted by Purdue Hackers need to be recorded so that people can look back | ||
| on what events we've hosted, as well as keep track of upcoming events. We should | ||
| have our own events site that manages this flow instead of using 3rd party | ||
| event management platforms. | ||
|
|
||
| ### Stakeholders | ||
|
|
||
| All event attendees of Purdue Hackers | ||
|
|
||
| ### Existing Solutions | ||
|
|
||
| - The current events site is already complete for past events. | ||
| - We are currently using Luma for future events. | ||
|
|
||
| ### Alternative Solutions | ||
|
|
||
| - Continue to use Luma and show upcoming events via an API. There has been some | ||
| reluctance in the continuation of use of Luma. | ||
|
|
||
| ## Requirements | ||
|
|
||
| ### Goals | ||
|
|
||
| - Show past events in a timeline view | ||
| - Display all upcoming events | ||
| - Allow people to RSVP to events | ||
| - Allow people to receive email notifications | ||
| - Allow people to receive text notifications | ||
| - Allow organizers to manage events | ||
| - Create/delete/reschedule events | ||
| - View RSVP count | ||
| - Send out notifications through different channels | ||
| - Write up event retrospectives | ||
| - Upload images for event retrospectives | ||
| - Show statistics (ex: **3** new Rust projects, **48** people joined the Systems Session, etc.) | ||
|
|
||
|
|
||
| ### Non-Goals | ||
|
|
||
| - Keep track of live attendee count (should be a separate project tied to attendance) | ||
|
|
||
| ### Constraints | ||
|
|
||
| - Must be hosted on a platform we own | ||
| - Should not use 3rd party event management platforms like Luma | ||
|
|
||
| ## Design | ||
|
|
||
| ### Architecture | ||
|
|
||
| The majority of our codebase will be written on AstroJS, with PostgreSQL serving | ||
| as our database. AstroJS will contain the fullstack | ||
| application that attendees and organizers will use to manage and view events. | ||
|
|
||
| ### User Interface | ||
|
|
||
| The user interface will be a website. Users will view events through their browser. | ||
| Emails and texts will be setn out for RSVP notifications that will redirect to | ||
| the website once clicked. | ||
|
|
||
| ### Deployment | ||
|
|
||
| Vulcan will host the PostgreSQL database, while Vercel will host our fullstack | ||
| AstroJS application. | ||
|
|
||
|
|
||
| ## Milestones | ||
|
|
||
| - Migrate all events data from AstroJS content collections to PostgreSQL | ||
| - Create admin portal | ||
| - Integrate admin portal with ID | ||
| - Allow for writing retrospectives from admin portal | ||
| - Allow for creating new events from admin portal | ||
| - Allow for event management from admin portal | ||
| - Create RSVP component | ||
| - Integrate with an external service (ex: Mailchimp) for email notifications | ||
| - Integrate with an external service (ex: Twilio) for SMS notifications | ||
| - Allow for admin portal to send out notifications | ||
|
|
||
| ## Additional Considerations | ||
|
|
||
| ### Security | ||
|
|
||
| The admin portal will have to be sufficiently protected. For authentication, we will | ||
| use Purdue Hackers' ID system, but we should take precautions so that only organizers | ||
| can manage and create new events. In addition, we should take care not to expose | ||
| mailing lists or phone number lists, if we do end up collecting them for the purposes | ||
| of RSVP only. | ||
|
|
||
| Events data is meant to be public, so there are no additional security considerations. | ||
|
|
||
| ### Performance | ||
|
|
||
| With the current events site displaying past events, the performance is excellent | ||
| as AstroJS compiles to a static website. As we move to a database, we should monitor | ||
| the usage and make adjustments as necessary. | ||
|
|
||
| ### Maintenance | ||
|
|
||
| This project will be collectively maintained by organizers and Hack Bishops of | ||
| Purdue Hackers. | ||
|
|
||
| ## References | ||
|
|
||
| https://events.purduehackers.com | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.