Making the HackMIT Club Penguin
Start the database
Make sure Docker is installed, and that the Docker daemon is running. Then, run the following command to start an ephemeral database in the background:
docker run -dp 6379:6379 --name playground-db redis:latest
Set up secrets
You'll need our secrets file. If you want to use your own secrets, copy
.env and paste yours in there. If you need to get the HackMIT ones, message Jack.
To build the project, just run the following command:
go build .
To run the project, you can then just run the binary:
-reset flag the first time you run Playground in order to reset the database to its initial state. After you do that once, you don't have to use the flag anymore, unless you want to wipe everything.
Run the frontend project
Check out the playground-frontend repo for more details about how to set up the user-facing side of this project.
In the coming weeks, we'll be cleaning up the project to a point where it isn't nearly as embarrassing as it is now. If you find any bad coding practices (spoiler: you will), we apologize — much of this project was completed at the last minute. Once we have a chance to clean everything up, we should be ready to receive some contributions!
Can I use this for my own event?
In the coming months, we plan to clean up this project and get it to a point where you can run an event by just adjusting some config files! This won't be ready for a little while though — stay tuned for more info.
Why did you build your own virtual platform?
Building it was fun! Also, we didn't want to pay for one, and we didn't love the options that were available back in April, when we decided to take on the project.
How can I deploy this?
We used AWS Elastic Beanstalk during HackMIT in order to handle the load from thousands of concurrently connected users — our project is set up to have multiple ingest servers running in parallel. We'll publish more details about this soon.
I have another question!
Playground is available under the MIT license. See the LICENSE file for more details.
This project wouldn't have been possible without our supportive and energetic team and the greater open source community.
- Jack Cook (HackMIT co-director, project lead)
- Julia Gonik (Jukebox, workshop attendance)
- Natalie Huang (A billion last-minute fixes and improvements)
- Jianna Liu (Character profiles)
- Kat Liu (Settings, Twitter integration)
- Mindy Long (Chat, account creation, world map)
- Michael Lu (Hacker feedback)
- Zoë Marschner (Three.js wizard
- Shirlyn Prabahar (Quill SSO)
- Hillary Tamirepi (Playground explorer)
- Allen Wang (Sponsor panel, hacker queue)
- Eva Yi Xie (Pop-up designs)
- Angela Zhang (HackMIT design lead)
- Soomin Chun (Town square, nightclub, stadium)
- Sean Knight (Character selector, sponsor areas/buildings)
- Savannah Liu (Town square, character profiles, hacker arena)
- Gary Nguyen (Non-profit village)
- Aliza Rabinovitz (Settings, achievements, town square 2)
- Anna Sun (Chat, coffee shop, town square 2, stadium interior)
- Eva Yi Xie (Icons, pop-ups)
- Jessica Xu (Icons)