A coffee store mobile app built using Strapi, Koa, Apollo Server/GraphQL, Docker, Stripe and React Native.
This project was initially started for Hacktober Fest 2019, but it quickly grew into a playground of ideas I've had and new technologies I've been wanting to try out.
At the time I was really wanting to build something of some significance with Strapi since it had just went into beta. Since I started this I've been Strapi everyday at work so it turned out to be pretty good practice.
I've been using Express forever and it's always gotten the job done. I try out new Node.js frameworks occasionally just see if they could be useful in future projects. So of course Koa has been on my list and I specifically grabbed for it in this project because I saw that Strapi used Koa under the hood. Honestly I don't really like it.
I've worked on some large GraphQL projects over the last couple years and they've used Apollo v1. I knew I was going to have to upgrade these projects to Apollo v2 at some point in the future so I figured I should start learning the differences.
The entire project would be a pain to run withough docker-compose. Maybe in the future I'll actually deploy the containers on Kubernetes somewhere. I've never used a managed K8s service like Amazon EKS or GKE, so that could be a good reason to test it out.
I used Stripe on a pretty large project a while back and I just wanted to see if it was still as easy/nice/awesome as it was a couple years ago. And of course it is!
I've used React Native a lot over the last couple years but I haven't used it with Stripe integration or GraphQL/Apollo Client. I also haven't used Expo on anything other than quick and dirty projects to test things out. For any significant mobile app with React Native I've always gone with the React Native CLI.
- Clone the repo
npm installin each of the folders inside theserverandmobilefolders- Copy the
.env-exampleand rename it to.env. The example should have all of the variables you will need and some already filled out. - In the
serverfolder rundocker-compose up. - The mobile app uses Expo to manage React Native so you will need to folow these steps to get it installed
- In the
mobilefolder runexpo start

