Skip to content

Latest commit

 

History

History
182 lines (110 loc) · 15 KB

README.md

File metadata and controls

182 lines (110 loc) · 15 KB

We cannot wait for you to attend Uncommon Hacks March 25-26 at the Polsky Exchange North! We hope you make friends, learn, meme out, but most importantly, have fun ᖍ(ツ)ᖌ.

Before the Hackathon

What to Bring

Here are some common choices of things to bring to a hackathon:

  • Computer
    • Or any other hardware you are interested in using
  • Chargers
    • Phone Charger
    • Computer Charger
  • Headphones
    • Sometimes, you gotta jam out
  • Extra space for swag
    • You will be getting T-Shirts and other stuff, so come prepared with extra space
  • Sleeping supplies (if you are planning on staying the night)
    • Sleeping bag
    • Toiletries

Additional Comments

If at all possible, try to arrange your schoolwork and schedule so you won’t have to be worrying about homework over the weekend. You’ll be able to get the most out of the event, and hopefully will be re-energized by taking a break from your schoolwork!

Tenative Schedule

See uncommonhacks.com for the latest info.

Saturday, March 25th

  • 9:00 – doors open, check-in, team formation, breakfast
  • 10:00 - opening ceremony
  • 10:30 - hacking begins
  • 12:00 - lunch
  • 6:00 - dinner
  • 9:00 - mad hatter tea party and costume contest
  • 10:00-12:00 – ‘follow the white rabbit’ scavenger hunt

Sunday, March 26th

  • 12:00 - midnight snack
  • 8:00 - morning meditation
  • 9:00 - breakfast
  • 10:00 - projects due, project fair
  • 11:00 - judge deliberation
  • 12:00 - awards, closing ceremony

At the Event

Staying Cool

In a hackathon environment, surrounded by people who hack away, seemingly intensely focused, it is easy to feel intimidated. If it is your first time at a hackathon, or your 100th time at a hackathon, you may feel that everyone around you is more talented than you. That’s not the environment we want to sustain. Chances are, the person next to you may have had the same problem you had a week ago! Know that hackathons are learning experiences for all.

Cool

Safeness

If ever at any point you should feel unsafe at the event, PLEASE reach out to an Uncommon Hacks team member as soon as possible. We will handle the situation accordingly.

Forming a Team

Many people choose to work with teams at hackathons. Some people may already have a team going into the event: from school, from being meme friends online, etc. But do not worry if you do not have a team at the event! We will have a team formation activity at the event for you to find others to work with who have the same interests as you.

More importantly, have no fear if you think you’re not good enough to work on a team. There is always something for everyone to do, whether it be design, the front-end work, the back-end work, connecting the circuits for the hardware device, making art, music, and so on. Just make it known that you are willing to work and to learn, and you should be great.

It’s also totally fine to work on a project by yourself.

Deciding on an idea

When you have a team, start thinking about what you might want to build. You can build basically anything you want, with the main rule being you have to build it entirely during Uncommon Hacks. It can be hard to decide on an idea, especially if you’re working with teammates you’ve just met. Have fun brainstorming, and you can approach finding an idea from either the perspective of what you are interested in, or what technologies you are interested in learning. There is some information on possible project idea tracks in the next section.

Don’t feel like your project has to be the next big thing or something you’d use every day. We encourage you to make something creative and fun and possibly totally useless! What is important is that you have a good time building it and learn in the process.

The Tracks

Game Design

When it comes to making games, there are really three main approaches:

2D Language Frameworks

When you don't think that your game will require super advanced graphics, and you're comfortable sticking to 2D, we would recommend using a game design library in your favorite language. Although this will mean that you have to write a bit more code (you won't be able to take advantage of the built-in physics or dialogue systems that are offered by game development engines), there is also a lot less of a learning curve, and you can get to work immediately. And, in the end, you will be single-handedly responsible for every aspect of how your game runs, which is a really nice feeling.

Framework recommendations: Pyxel for Python, Love2D for Lua, Kaboom.js for Javascript (if you want it to run in the browser).

Dynamic Websites

You may have a very specific type of game in mind: something that runs online and is very text-heavy, like Candy Box 2 or A Dark Room. In that case, it's best to work with web technologies, since they make it much easier to display and organize text. Specifically, you'll want to leverage a Javascript framework, which allows for rapidly changing HTML in a way that would be necessary for a game. Please consult the Web Development section for more information about this.

3D Game Engines

If you want to make something more complicated, or something in three dimensions, then you may want to leverage the tools that game engines provide. These are full-fledged programs that handle everything from creating your game world to handling menus, UIs, animations, and so on. But the downside is that there is a lot to learn, especially for a hackathon.

Game Engine recommendations: Unity (for 3D), Godot (for 2D).

Web Development

Chances are, if you want to make a web project, you'll want a website that is highly dynamic, which means that it changes depending on user data. Although you can accomplish this with raw Javascript, this is much easier using a variety of "Javascript frameworks" that the developer community has created over the years. These allow you to shift from an 'imperative' model (writing code like: "when this happens, change this element like so") to a 'declarative' model (writing code like: "this element has these properties, and renders them like so". The framework handles changing the element so you don't have to do it manually).

The industry-standard for these frameworks is called React, but it may be a bit complicated to learn for this hackathon. If you don't have have prior web dev experience, Svelte may be a better choice. You can code with both of these frameworks right in the browser on CodeSandbox.io. And, finally, if you just want to quickly play around with CSS or Javascript, Nick Briz's netnetstudio is really nice to use!

Data Analytics

If you love working with data, then you're welcome to create a prjoect in the Data Analytics category. There's really three steps to doing this: first, decide what dataset(s) you'd like to focus on. There are many online resources for finding interesting ones, like r/datasets or Kaggle datasets.

Next, figure out how you're going to process it. The two standard workflows are with Python and Jupyter Notebook (this is probably easier) or with R. These two languages have very rich ecosystems that allow you to transform your data in any way imaginable.

Finally, prepare a visualization of your data. Although the two processing workflows mentioned above have various tools for visualizing data with charts and graphs, these are rarely interactive, and hard to pull out into a standalone project. So you're probably going to want to use a different tool, and Javascript is really good for this. D3.js is the go-to framework for this -- it also has tools for constructing graphs and charts, but because these are in javascript, you can embed them into a website, and, crucially, add user interaction. You may also want to look into three.js, which is a fantastic Javascript library for creating three-dimensional graphics and visualizations.

Programmatic Art

Finally, if you're interested in making a visual, dynamic project, but don't think it falls into the previous three categories, you may be interested in making a piece of programmatic art. You can think of this type of project as a video game but with less user input, and more emphasis on creativity and audio-visual presentation. You may make a pulsating geometric art-piece that's synced up to some music; or a creative three-dimensional tribute to your favorite band (like this: https://www.aquarium.ru/en). As in the case of Data Analytics, Javascript may be a good choice here, due to how easy it is to handle user interactivity with it, and just how large its community is. I will once again recommend Three.js as an awesome tool for creating three-dimensional graphics, and for two-dimensional art, P5.js is worth checking out.

Opening Ceremonies

Once you’ve had some time to get settled, we’ll officially start the event with the opening ceremonies. We’ll also go over the basic rules for the event, and provide an overview of the next 24 hours!

Working on your Project

After opening ceremonies, it’ll be time to jump in and get working! You’ll have 24 hours to make your project.

Starting your Project

Once you’ve settled on an idea and are ready to dive in, one the first barriers you might run into is setting up your environment and doing all the yak-shaving necessary to start writing code. This can seem difficult, and it can be tricky to get everyone on your team on the same page, but it’s important to do these first steps. Check out the Additional Resources section for some getting started guides for different environments.

When you have a free moment, it’s also wise to draft your submission to Devpost, which is the site we use to track submissions. Everyone on your team should make an account, and you can add multiple people to a project. Most other hackathons also use Devpost for submissions, so you’ll be able to build a portfolio with the projects you make!

Asking for Help

There’ll be a point where you get stuck on something when working on your project, whether it be a technical roadblock, a decision you don’t have enough information to make, or a question about best practices. UH team members will always be happy to answer any technical questions, and there are also are probably other hackers who might be familiar with what you are working with. Just send a message to the ask-tech-help channel on Discord and someone should get back to you!

If you have a question about the event for the Uncommon Hacks team (such as a scheduling questions, rule clarifications, etc.), send a message to the ask-organizational-logistics channel. There’s a good chance someone else has the same question, and this lets anyone on our team respond. You can also message any of the team members directly if necessary.

Food

We’ll be providing all meals and snacks throughout the event, so don’t worry about bringing food (unless you love very specific snacks). If you have dietary restrictions, all the food should be clearly labeled and there should be options for everyone. If something isn’t labeled or you have any other questions, please let us know.

Finishing your Project

When you’re almost done with your project, make sure to finalize your submission on Devpost and click submit before the deadline (2pm on Sunday)! Devpost will be the way we look and submit projects, so it is key that you register for a team otherwise your project will not be judged. You can select which of the theme and sponsor prizes you want your project to be reviewed for.

When time is up, you must stop hacking. However, you’re allowed to debug and make small fixes to their programs if necessary, e.g. if during demoing your hack you find a bug that breaks your application and the fix is only a few lines of code, it's fine to fix that.

Demos and Presentations

The Expo

After hacking has ended and a short break for lunch, the main room will be set up for demos in a science-fair style expo. We’ll use the Devpost submissions to assign each group to a table, and announce the table assignments when they are determined. Your group will be given a table number, and there will be some time for judges and other participants to walk around and see your projects. Even if your project isn’t fully working or you didn’t finish it, you should still present! People like hearing about what you tried to do, what challenges you faced, what technology you used, and what you learned.

Final Presentations and Awards

After the expo, we'll have some of the top projects present, and then will give out awards. After some closing remarks, the event will finish!

Additional Resources

About Hackathons

Technical Resources

Once you have an idea for a project, you’re going to figure out how to build it. Of course, Google is one of the best ways to figure out how to build your project. For example, if you would like to build a website, you can google “How to Build a Website” or “HTML/CSS/Javascript.” Some great tutorials for beginning new topics are CodeAcademy, Tutorials Point if you know exactly what language you’re using, or Treehouse if you like learning with videos. MDN is a fantastic resource for web development and browser extensions. There are also many MOOC’s (Massive Online Open Courses) online. Once you know what stack you will be using, you can dive in by researching tutorials online for what you’re building online. Ensure that you are dividing up the work evenly within your team. Our advice is to take it step by step - write one piece of code, see if it works, then build on the next part. Debugging is annoying, so tread carefully!

About This Guide

Written by Ben Weinshel, Juliette Hainline, and Anton Outkine from Uncommon Hacks

This is a living document. Please email celery@uncommonhacks.com with any comments or suggestions, or file an issue or pull request on this repository. If you’re organizing a hackathon, feel free to fork this repository and adapt this document for your needs!

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.