Code Monkey home page Code Monkey logo

matchmefy's Introduction

Matchmefy

Android mobile app used to showcase the usage of the latest Android Jetpack libraries, coroutines, and the latest best practices in android.

The app retrieves data about the user from the Spotify API, stores it in a secure database. Then the user can search for friends or random people and get a "match score" which calculates how compatible their music tastes are. In the end, the user gets a Spotify playlist with songs from his match.

โค๏ธ Website

APIs

Used to fetch the user profile and their top 50 artists and tracks

Note: Matchmefy Api repository has been made private for security reasons

Custom REST API developt in Node.js, used to store user data in a Mongo DB and handles the "logic" to get the match summary for 2 users.

Architecture

The app is built with the latest Android Jetpack ๐Ÿš€ libraries using the MVVM ๐Ÿ“ architectural pattern, data binding and LiveData

Other Android libraries used:

  1. Jetpack Navigation -> MVVM navigation, all handled in the view models ๐Ÿš€
  2. Coroutines -> used to handle http requests and other async calls ๐Ÿ˜Ž
  3. Koin -> DI ๐Ÿ“Œ
  4. Retrofit + OkHttp -> staples libraries used to handle http calls to REST apis โ˜๏ธ
  5. AppAuth -> used to handle OAuth2 using Authorization Code Flow + PKCE ๐Ÿš“
  6. Timber -> Better Logging ๐Ÿ“ˆ
  7. Firebase -> Analytics and Crashalytics ๐Ÿ’ฅ

Special Thanks to Undarw for the amazing free illustrations ๐Ÿ™

FAQ

Q: Will Matchmefy be available on iOS and Web?

A: It is planned, but not a priority. If you are an iOS dev. or web dev. and looking to extend this project, contact me and I can provided deisgn specs, api, db access and all.

Q: I can match with myself, is this intended?

A: Yes! You can match with yourself but you will not be able to create a playlist.

matchmefy's People

Contributors

ghimpulucianeduard avatar

Stargazers

Nikola Samardzija avatar ammyl33t avatar

Watchers

James Cloos avatar ammyl33t avatar  avatar

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.