Giter VIP home page Giter VIP logo

lunchbox's Introduction

Build Status
badge

LunchBox is a native Android application for exploring eateries. LunchBox provides all the details about restaurants ranging from their location to their menu and what not! The application follows MVVM architecture, written in Java and uses two back-end services:


This project is being worked under the Technology Incubator Programme BITS Pilani Goa Campus.

Gallery

Setup Screen Home Screen Restaurant - Gallery
Restaurant - Details WebView - Menu Search Screen

Building The Code

  1. Clone the repository using HTTP: https://github.com/devansh-299/LunchBox.git
  2. Open Android Studio.
  3. Click on 'Open an existing Android Studio project'
  4. Browse to the directory where you cloned the project and click OK.
  5. Let Android Studio import the project and you are good to go!

Contribution Guidelines

  1. All issues should be raised via GitHub issue tracker and should follow the issue template
  2. All changes should be proposed via Pull Requests and should follow the pull request template
  3. Commit messages should be appropriate and must reflect/describe the changes made
  4. One commit should have only one change although it may involve changes in multiple files

How To Contribute

  1. Fork the project
  2. Make your changes and push the changes to your forked repository
  3. Send a pull-request dev branch and ensure the pull request follows the template.
  4. At the moment we are adding all the new features to the dev branch, and pushing only fully features to our master branch.

Documentation

Maintainer

lunchbox's People

Contributors

devansh-299 avatar epicadk avatar gowthamkrishna362 avatar maharishi-coder avatar unc0ded avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

lunchbox's Issues

Location Permissions

Description

Add Location Permissions Using Foreground service as required in android 10+.

Add Category Filters and Markers in Home Fragment

Description

Restaurants can be filtered on the basis of categories. In HomeFragment, users should be able to filter and distinguish restaurants catergory wise. For this, map markers and chips (to filter restaurants) can be used.

  • For map markers refer this page
  • For chips, we can use something like this
    Screenshot from 2020-10-06 23-43-21

Feature : Set Iconified by default to false

Description

Currently in the Search fragment the Search View is brought into focus only when we tap on the icon.

If we add iconifiedbydefault and set it to false in the Layout file then no matter where the user clicks the search view will be brought to focus

Unwanted back button in toolbar

Description

  • SearchFragment and FoodFragment show a back button in the toolbar, which is not desired, as they are top-level destinations.

Screenshot/Recording

Add Retrofit

Description

Create a singleton class returning containing retrofit instance

Screenshot/Recording

No Screenshot

Feature :Adding Models

Description

Add Cuisine models from here.
Remember to use the actual response ( the one you get when you use an apikey ) and not the sample response as they may differ.

Add Subscriber and Observer in Repository

Description

Currently in the repository we are returning only Single however we can also return a single with the subscriber and observer already added to it (subscribeOn and observeOn method already invoked) so as to reduce repetition of code.

Create Requests

Description

Create API interface containing requests to the API

Screenshot/Recording

No screenshot

Add Models

Description

Add Category model from here.
Remember to use the actual response ( the one you get when you use an apikey ) and not the sample response as they may differ.

Create Layout

Description

Create Layout for home Fragment

Screenshot/Recording

Update Readme

Description

Update Readme with the libraries we use.

Misc UI fixes

Description

  1. Splash screen status bar color does not match the general app status bar color.
  2. White status bar color makes the status bar icons illegible (Red is better, or maybe red with a little less alpha).
  3. Expanded app bar text color in RestaurantDetails is a darker color, white would perhaps be more legible.
  4. 'Clear Filter' chip fontFamily has not been changed.

Screenshot/Recording

1. 2. 3. 4.

Add Restaurant Details Screen

Description

Currently, we have the recyclerview to display restaurants but nothing happens when clicking on a restaurant item. The idea is to direct users to that specific restaurant's details when clicking on the item.

  • API Documentation: link
  • Also, please describe your approach (design) before sending a pull request

Repository Singleton Pattern

Description

While following MVVM architecture, it's recommended to have the Repository as a Singleton, which is not followed in this app yet (a new instance is created for every ViewModel instance, and in one of the ViewModels, even for every method in the ViewModel).
Edit: Since ApiService is already a singleton, this is now only a code style issue. Only a global Repository instance should exist in every Viewmodel.

Add Placeholder Image

Description

For a few restaurants, the images are not available. In such cases, we must have a placeholder image.
For Glide documentation, you can use this.

Screenshot

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.