I have done weeks researching this question for my App Idea.

Background of the APP - Simply a multi crypto currency wallet which users sign up with ONLY username and Password - no email, FB, or Google etc... Users can search other users to add to address book etc. When a User registers their account on one of the three devices - it Automatically generates wallet Public keys for their account and uploads it along with their credentials to the DB. the private keys stay stored on their current device which later can be synced to the other devices if need be via in-depth steps.

I am extremely new at coding - and taking on a big project at first. But will be a great learning curve for me.

I dont want to use cross-platform programming. I have the foundations of JavaScript for my WINDOWS desktop APP. But the first version of the app will come from X-code Swift IOS. and Lastly JAVA for Android. - So i want all 3 of these to be as simple as possible to create, login to the same DB.

Originally i thought MySQL would be for this - but turns out it is not ideal for IOS. then Firebase popped up and it again asks for too many credentials. Azure just doesn't seem like what Im after. ASP NET seems too web based?


Some things to consider:

  • Your database architecture has absolutely zero impact on your clients and vice versa. An API sits between these two layers and should handle all translation between them.
  • The method of authentication is entirely up to you. Firebase and such support out-of-the-box oauth with Facebook, Google, etc. But you don't have to use that, you can store a username/password combo and be done with it if you want.
  • Realise that what you're trying here is not just a big project, it's also a very complex one with many layers. You're basically doing full-stack work here, which sounds great on a resume, but is really not something you'd normally do by yourself.

Now for the solution. What you want is to make a choice, do you want to host your database yourself or do you want to use a platform like Firebase or Azure? If you want to host yourself you'll have to look up VPS prices and find the best option. Then get a VPS, install MySQL and a database manager, create some tables and setup a backend. If you want to use a platform like Firebase, compare them and take your pick, it doesn't matter a whole lot. Then you do the same as with a VPS, but with simple tools in an admin console.
Once you have your database running, you'll need to provide an API for yourself. There are many many options for language if you've hosted a VPS yourself, PHP, Perl, Python, NodeJS (you did Javascript, right?), ASP, Ruby, etc. When you've chosen a language you basically make it listen on port 443 and start handling endpoints. Firebase has tools to setup endpoints easily.
Your first endpoint should be a register. You provide it with a username and password and whatever else you want to store about your user and it saves it in the database. Then you make an authenticate endpoint that verifies a user's credentials and gives back a token to use in subsequent requests.
Once all that is done you can start hooking up your apps, let them make https requests to your API and see the magic happen.

Personally, in your situation, I'd just go with Firebase right now. You can host a database there, setup a simple API to let your clients access it and even implement analytics and crashlogs etc very easily. You'll skip all the headaches of scaling up a server's storage capacity, optimizing the database, creating logging and monitoring pages and managing third party tools like your database, database manager and backend language. You don't have to use all Firebase's tools, but it's nice that they're there and just an SDK include away.

  • This is such helpful information!!! I really appreciate your time for this!!!! i have finish Javascript. and currently on NodeJS which was throughout JavaScript course only basics tho. Ive taken on PHP recently also as i was lead to this via other research done. For now its a personal project i am using for learning and achievement since i have minimal experience, and do plan on eventually aquiring a team to perfect, promote and manage the applications on a commercial level if it is successful. First i need to bring something to the table with my lesser experience. – Luke Tails Jun 13 '18 at 8:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.