GithubHelp home page GithubHelp logo

sohamfit-android's Introduction

Sohamfit-Android

Android native app for (http://sohamfit.com/) developed and built in Android Studio.

targetSdkVersion 25 (Android Nougat) minSdkVersion 16 (Android Jelly Bean)

Sohamfit project (http://sohamfit.com/)

Sohamfit is an online platform to learn and practice yoga (online spa).

I built this project by using MongoDB/Express/AngularJs/Node (MEAN-stack), leveraging in Parse Server technology.

Sohamfit originally only had a Wep app, but because this test's requirements fit perfectly in the main core features of sohamfit I decided to build an android app for sohamfit.

Other advantage to take sohamfit as a theme for this test is that I own the web server and this allow me to use sohamfit's API and other feature like authentication with free will.

App layout (Point 1, 2, 3 and 4)

The main activity of this app is a list view of all the videos in sohamfit. This list is filterable (video type or video level), sortable (by video name or date) and searchable (searchable by video name and/or video description). There is a dedicated activity for the filtering and search of all videos. If a list item is clicked a video player activity is opened where the video info is displayed and the video played.

Web service (Point 5, 6, and 7 of the test with explanation)

Point 5

API endpoint: http://sohamfit.com/api/ This is a real API endpoint, not a mockup. This app consumes the rest API using and http class service. This service can be modified to consume service from another rest API. (It is fully customizable).

Point 6

Currently there are 59 videos on sohamfit, but in the future more will be added. To handle this the app implements pagination in form of a infinity scroll. When the video list is created only 10 videos are loaded, when the user scroll to the bottom 10 more videos will be fetched from the server and added to the bottom of the list. This process is repeated until the last video is loaded.

Point 7

All the data consumed by this android app comes from a Server deployed in AWS Web service and it also serves the web app (Currently this app is in production). With this I mean that the data can be modified and consumed from different threads and different clients. To handle this in the app the main video list implements swipe to refresh, with only a swipe the user can refresh all the list keeping the selected filters.

Project Structure.

There is a clear project structure with:

  • Activities.
  • Layouts.
  • Service class (http requests).
  • Drawables.
  • Model (video model).
  • Constants.
  • Helpers classes (String helper, image transformation).
  • Strings resources.
  • Styles resources.
  • Color resources.
  • Dependencies (libraries).

Extra features

Email Authentication

This app has authentication and register service. In order to access an user has to either login or sign-up. Both feature are fully functional so any user can login or create a new account in sohamfit. For the purpose of this test I've created a test user if you don't want to create a new user: email: contacto@sohamfit. password: sohamfit

Facebook Authentication

This app has also Facebook authentication so is the user want, he can login or sign-up just with one click using Facebook android SDK.

Video player

This app also has a video player activity to play the yoga videos. In this video player activity the user can see the video description, instructor name, video duration and video level. If he rotates the device to landscape mode he can play the video in full screen.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.