Inspiration
It can be difficult to stay consistent and complete side projects. With GitPets, we aim to create a product that will engage developers and encourage accountability in building projects
What it does
On login, the user will be prompted to login to GitHub. Once logged in, the user can create eggs representing coding projects. When hatching an egg, the user can choose GitHub repository to link to the GitPet. Each pet feeds off of the commits to their repository. They will be happy and healthy when there are consistent commits, but they will be in bad condition if the commits are lacking. There is also a todo list feature attached to each pet so the user can keep track of the tasks necessary for completing their project.
How we built it
We used React Native with Expo as the main framework. This choice allowed seamless cross platform development and deployment on both Android and iOS. Expo also has many built in features that don’t require us to reinvent the wheel for basic needs. For GitHub authentication we used OAuth and Expo’s auth-session persistence to keep people signed in. All of the art used in our app was sourced through Dalle-3. This allows us to reuse prompts and create more pets in the future with less labor and oversight. The core functionality of the app, maintaining a pet's happiness, is determined by the time since the last commit on the repository linked to the pet. Therefore working on your projects more, will make the pets happier.
Challenges we ran into
One of the biggest challenges was planning and implementing the project architecture. Another challenge was successfully implementing GitHub OAuth. We also ran into many React Native UI issues while creating the navigation bar, fixing overlapping UI elements, and there were some dependency issues.
Accomplishments that we're proud of
We are proud of the quality of UI design in our app, the integration with Github's API, and how well we were able to collaborate.
What we learned
Throughout the course of the Hackathon, we all got better at working under pressure and making quick iterations to our product to meet the tight deadline. We pushed ourselves to effectively manage our time by planning a project of appropriate scale and by delegating tasks to the team members that they are best suited for. Also, part of our team had to learn React on the fly to keep up with the rest of the team.
What's next for GitPets
One feature we had planned for GitPets but didn't have time to implement were integration and authentication with Firebase. Also, a mentor who is a GitHub representative gave us the idea to be able to view each Pet's status from the README of the Pet's repository, which would also require Firebase to sync with the app.
Built With
- dall-e
- expo.io
- github-api
- javascript
- react-native
Log in or sign up for Devpost to join the conversation.