CoinCoin is a direct result of an inside joke in our high school about a currency used for a discord bot. Then, I (Fahim) had a shower thought of a cryptocurrency trading app two days before FinHacks was supposed to start. It would combine technologies that none of our team members have learned before in a semi-achievable goal.
What it does 💻
The app has a dashboard for managing all things CoinCoin®. You can view a list of all the current offers and see if you'd like to accept one of them or not. You can choose to make your own offer (offers are currently only CoinCoin® to USD, not the other way around) OR you can mine CoinCoin® by clicking a button. You don't need a fancy graphics card, just a mouse 😎(or auto-clicker).
You might be asking, what do you do with all your CoinCoins? Before I answer that question, you should refer to CoinCoin as CoinCoin® in all further correspondence. There is a store tab on the website, where you can buy randomly generated images to show off to the three people that know and care about CoinCoin!
How we built it
There are a lot of moving parts in the application as a whole. I'm going to start by describing the database and work up from there.
We used MySQL for storing users, current offers, and the catalog of images. We used Google Cloud to host this database.
To interact with the MySQL database, we used the python library SQLAlchemy in combination with flask to query the database at each request. The backend follows a model of GraphQL, which none of us have worked with before. GraphQL was chosen instead of REST because it would be more fun that way and we needed a way to easily query data without filtering it on the front end.
The Frontend was made entirely in React (Next.js). React was chosen for it's modularity, simplicity, and familiarity. The backend was completely made up of unknown technologies, so it helps to have one stable point of the application. We did kind of cheat on the design and UX part of the frontend by using tailwind, but it was still a ton of work creating the flex layouts and scaling everything.
Challenges we ran into 😡
- A team member didn't know much about git, but learned along the way
- A team member wasn't very familiar with APIs at the beginning of the hackathon, but managed to learn them during the hackathon
- One team member was not too familiar with Flask at the beginning of the hackathon.
- Two team members weren't very familiar with GraphQL, but both managed to learn and used it for a majority of the backend code to communicate with the Frontend.
Accomplishments that we're proud of 💃
WE LEARNED GRAPHQL 🥳🥳🥳🥳🥳 WE LEARNED SQL AND MYSQL 🎉 WE MADE OUR FIRST COHERENT FULL-STACK APP 🎉
What we learned 👩🏫
- User Authentication
- better understanding of git
- how to use APIs.
What's next for CoinCoin 📈
usd to coincoin offers Flutter app to buy and sell coincoin on the go
Log in or sign up for Devpost to join the conversation.