Our site: gitaway.tech
Gitaway is
- An open-source, free-for-all, data-free adventure coordinator
- The world's first GHaaB app (GitHub-as-a-Backend)
- Also, quite possibly the biggest abuse of git/GitHub in existence
- A fun experiment to play around with!
Inspiration
Using GitHub today is like building a Lego set with half the pieces missing!
You clone a project to learn from it, or to be inspired by it, or to enhance it... but you can't! Half of it is missing. The problem is clear: Github may store the full front-end, but rebuilding the back-end and databases requires access to the original developer's Firebase, MongoDB, or some other third-party database platform. Replicating this infrastructure can be a Herculean effort unless you have the original developer looking over your shoulder.
What if we told you there was another way?
What it does
Gitaway is a simple travel site to explore cities, rate places, and RSVP for events. It's perfect for a getaway weekend!
But this is no regular travel site. This is the first ever platform that uses GitHub as a Backend! By abstracting GitHub in innovative ways, we can leverage it to store, manage, and distribute data.
Gitaway is a forum for tourists but because everything is centralized on GitHub, enterprising developers can easily fork the repo and start up a forum for anything. And it just works, no strings attached. Hell, it doesn't even need to be a forum. The possibilities are endless.
Throughout the site we included links to the corresponding GitHub components so you can get a look under the hood!
Future Plans
- Trip itineraries (front-end)
- Destination and activity image attachments
- Networking
- Friending other users
- Creating "friends only" activities
- Creating "invite only" activities
Technical Information
Codebase
- Our project's code is separated into three separate parts--- app, bot, and deployment.
- The
app
branch contains all the code for the actual web application. - The
bot
branch contains code for a scanner that merges pull requests when the event has completed (allowing 12hr grace period for last comments). - The
deployment
repo contains a copy of theapp
branch that is deployed to vercel. This has to exist in a separate repository since deployments can only occur on the default branch of a repository, which ismaster
in the original codebase.
- The
Abstracting to GitHub
- When using the web app, all interactions are facilitated by the GitHub API.
- To use GitHub as a backend, we created abstractions from various actions users take to GitHub repository features.
- All travel destinations are represented by issues in the repository.
- All proposed activities are tracked by forking the repo, branching, and making a pull request. This pull request is where all user dialogue occurs. #### User Data
- Destinations
- Active destinations will show up in the
issues
tab. - User comments and emoji reactions (like 👍) for destinations are stored on each issue thread.
- Active destinations will show up in the
- Activities
- Active and future activities will show up in the
pull requests
tab. - Completed activities will show up on the
master
branch, as a record of fun times had! - User comments and emoji reactions (like 👍) for activities are stored on each pull request thread.
- Active and future activities will show up in the
- Itineraries (not implemented on front-end site)
- Active and completed itineraries will show up in the
milestones
tab. - Itinerary creators can add activities to any of their own itineraries. #### Technologies Used
- Active and completed itineraries will show up in the
- Vercel (hosting)
- SvelteKit (front-end)
- PicoCSS (self-hosted modified version)
- FontAwesome (for icons)
- GitHub API (backend and data storage)
Built With
- fontawesome
- github
- picocss
- sveltekit
- vercel
Log in or sign up for Devpost to join the conversation.