Inspiration
Robert and I were inspired to make this project as we are always competing and "betting" each other on things. From that fun, the idea for DLR was born. As we are both software engineers we thought that taking the fun we have for betting with one another and combining it with technology would be a very neat way to facilitate our betting and take personal skill out of it. We also have wanted to complete a full stack application together while in college and must say that we are quite proud of how this one turned out.
What it does
Dealer is a full stack application broken into 3 main parts. There is of course the back-end of the application, which handles the logic for the app itself. Then we have our two front-ends. The first is a pretty straight forward web application that connects to the backend to allow for user management and display. Lastly, we have an IOS application that displays information for a specific user, and allows them to view the status of all of their 'pools' from anywhere.
All of these features come together to make an incredible application that we honestly cannot even believe we managed to finish in such short an amount of time. To start off, the user needs to create a user (and of course get some friends so it's more fun), you then simply need to create a pool and get you and your friends into it. Once that is done, so are you. The app handles everything else for you. Every 24 hours the application will roll the digital dice for you and based on the percent chance that the pool will crash. It even handles you loading your account with cash into the application, allowing for the app to simply auto charge you each time that it is time for you to pay. This design means that it is perfect for a "set up and leave" kind of user. Check it when you want, you don't have to worry the app only charges you up until the point where the pool crashes. If you're lucky the dealer might just choose you and you could win big!
How I built it
The back end of the app is built on node.js and utilizes express for RestFUL communication, and mongoDB for storage. This was what I focused on first and get working so that we later could focus all of our attention on our two front end use cases.
While I was doing this and well after I had finished the backend, Robert was working on the IOS application that he built in swift. Needless to say this was no easy task, but he did an amazing job as you will see in the demo.
The last part of the puzzle for the application is the Web App which unfortunately we did not get to flesh out as much as we had wanted but still turned out pretty great and is a very cool way to manage some of the users/pools and get some more info about the project.
Challenges we ran into
There are of course always challenges with applications like this, a big one for us being a team of two was simply the amount of time that we had to work on the app. With so many moving pieces to this application there simply wasn't enough time to do everything we wanted to do.
Another large issue that we had which required us to work together was to get the IOS app to actually communicate with the node backend that we had made, this took us the better part of a couple hours.
Accomplishments that I'm proud of
We are very proud to have built a working full stack app with multiple user interfaces. That is fully functional and can stand alone on its own with just two simple commands and will run until you stop it without issues.
What I learned
We learned invaluable knowledge on the use of restFUL api's within swift for IOS development, and of some very interesting techniques that you can do to run tasks in the background of an express node backend using the same mongoDB connection.
What's next for DLR
We actually had such a blast making this app, that we are going to attempt to polish up the application, and we actually are excited to use the app ourselves! When I told you we thought of this cause we wanted an app like it I wasn't kidding! We are very excited to see how far we can take this app!
Log in or sign up for Devpost to join the conversation.