convert | ||
deploy | ||
explain | ||
html | ||
scrape | ||
stealth | ||
hackerbongocat.gif | ||
ReadMe.md |
Queermunity Calendar
Queermunity doesn't offer a way to add their calendar to your calendar app on your phone..
As a hacker, I simply cannot abide by this!!
Welcome to this group project! We will be creating a web application which allows anyone to add the Queermunity calendar to their phone, so they can recieve notifications about upcoming events.
Project Overview
Queermunity pays for a SaaS (software as a service) platform called SpaceBring to manage the dynamic parts of their website (Events, Room Bookings, etc).
SpaceBring can display a list of events on a web page, but it doesn't have a feature that allows patrons to add the calendar to their phone, like with Google Calendar or Apple Calendar.
We are going fix that for them!
- We need to get access to the event data from the SpaceBring website.
- We need to transform that data into a calendar format that your phone can read.
- We need a way to publish the calendar data on the internet so that your phone can download it.
What is a Web Application?
A web application is just a website, but with dynamic or interactive content. It's something that anyone can access in thier web browser, regardless of whether they are using an iPhone, Android phone, Mac, Windows computer, Linux computer, or something else.
Examples of popular web applications:
- Youtube
- Google Maps
- Facebook / Twitter
- XCel Energy / Centerpoint Energy bill payment portals
- Your Bank's Online Banking System
Personal Opinion: Hi. Author here. I personally believe that web applications are incredibly powerful and important, in fact, they may be the MOST powerful and important type of software that exists today, because:
- When done right, practically everyone can use them
- Viral / easy to access: you don't have to install it to use it
- These days, there really are no limits to what you can do in a web application
- The "Front-end" part of a web application executes in an open, transparent environment which comes with developer tools built into every desktop web browser. You can always
View Source
to inspect the code that makes them work, watch it execute step-by-step, or copy/repurpose parts of it for yourself.
Challenges
I've designed this repository to be split up into several challenges. Each challenge can be solved by a different person or group of people.
Pick the challenge that interests you the most and try to solve it! Don't hesitate to ask for help. In the end, we want to integrate everyone's code together to create an actual functioning solution!
In each challenge, you will be provided with some input data or information to work from.
Sometimes the successful result of one challenge will be input data for the next.
Pick Your Favorite Flavor
The [importing dependencies]
and [web scraping]
challenges will have to be done in the same programming language in order to be integrated together. Your group can pick whatever language you want for that. Besides that, there are no limits.
We can probably do either python
, go
, or javascript
.
- 🔰🦴
[HTML - bones of the webpage]
If you've never written a line of code before, this is a good place to start - 🔰🎨
[CSS - visual communication]
First, make the page easy to understand. Then make it look nice, on any device - 🔰🧚🏾♀️
[JavaScript - dynamic content]
Detect whether the user is on an Android or an iPhone; display appropriate content - 🪿⚙️
[reverse engineering]
Figure out how to scrape the calendar data from the SpaceBring platform - 🤝📦
[using someone else's opensource code]
Convert the calendar data to iCal format - 🎭⛏️
[web scraping]
Prevent SpaceBring from noticing that we are scraping thier data - 🧙🐧
[running code on a server]
Deploy the project to a web server that can be reached over the internet - 🧑⚕️📋
[usability testing]
Perform scientific tests on communication effectiveness; make improvements as needed
Final Boss
If you thought these challenges were hard, just wait: Integrating multiple different people's work together is often the hardest challege of all!
It's likely that we will only finish the project if we communicate effectively and persist through challenges, even into in the days and weeks to come.
Mentors are allowed to step in to assist during this final battle. This is something that even million and billion dollar companies struggle with, so don't take it too hard if we can't manage it on our first day. Stick with it! the site's