NodeJS API Authentication with Android

NodeJS API Authentication with Android

NodeJS Authentication with Android is a modular, user-oriented app written using Android front-end and NodeJS (with passport and various other frameworks).

It's is a production-ready, multi-threaded app written natively in the latest version of Android Studio (2.4 Preview 6) with the latest SDKs and made fully compatible with the latest versions of Android. <br />
However, older versions of Android ie. below SDK 21, may have issues running some features, including native material design animations, support for SVG files and the Marshmellow Permissions system. That said, these can still be made to work <em>with a little bit of tweaking</em>.

The Node API Features:

  • Login with username or email (with constant checks to ensure invalid data isn’t accepted
  • Fully JSON resposive
  • Uses JWT for authentication, but other methods can also be re-implemented ie. sessions, cookies, etc
  • Random avatar generation using sophisticated third-party open source APIs. This is done during registration but can be re-done at any other point within the Client-side app
  • A registration confirmation route to send an email to the registered email.
  • Check if logged in user has confirmed email or not
  • Username and email are checked for uniqueness upon registration
  • It features a natively implemented ‘forgot password’ route (The link sent to the user’s email address can only be opened within the app. Browsers will reject it as an invalid URL).
  • An arbitrarily implemented news route, courtesy of News API.
    Note, however, that this isn’t the main focus of the app (doesn’t mean it doesn’t have to be). Here, it’s just a useful add-on. If irrelevant, it can be easily removed.
  • Features CRUD (Create, Read, Update, Delete) for for multiple routes within the API itself.
  • Image uploads to the server, with custom checks in the API to ensure the files are non-malicious
  • Fully compatible with NodeJS v6+

The Android App included features:

  • Super-fast content delivery with auto-caching (both for requests and pictures)
  • Multi-threading to ensure flawless content loading to avoid the infamous OOM exception
  • Local storage of tokens, which are checked against the api with every request
  • Integration with Firebase: All errors are automatically submitted to the Firebase console for review
  • Beautiful design: Made in accordance with Google’s Material Design Specs (with a little help from Deadpool).
  • It features fully customisable login and registration screens beautifully designed according to Google’s Material Design specifications.

Future Updates will include:

  • Log in with Facebook, Google and Twitter; natively implemented without the SDKs (which tend to take up more space than necessary)
  • Check file type upload using algorithm that checks the magic number instead of MIME type
  • Multiple UI improvements (new Material Design Animations, vector animations and a fancy logo)