Skip to content
This repository has been archived by the owner on Dec 5, 2022. It is now read-only.

Latest commit

 

History

History
141 lines (99 loc) · 6.17 KB

README.md

File metadata and controls

141 lines (99 loc) · 6.17 KB

Show some ❤️ and star the repo to show support for the project

Munche Android App

License PRs Welcome Contributions Welcome

Munche is an open source 🍔 food ordering android application developed in Java and Kotlin. Munche is mainly developed so I can improve my android development skills by building a real world application and experiment with different android components.

Please Note: Munche is developed when I was still learning good android development practices so please don't expect the code to be great and follow design guidelines and practices.

Demo

animated animated

☁️ Inspiration

Munche's main inspiration for it's UI comes from the Zomato's android app. I have incorporated some of the UI elements and features which the Zomato app had when I was developing the app.

✨ Features

Some of the features of Munche app are:

  • User Authentication using Phone Number.
  • Browse different restaurants and menu items.
  • Place order for different items from the menu and see them in a cart.
  • Set your delivery location on the app accurately.
  • Payment options include : UPI (Unified Payment Interface), Paytm and COD.
  • See the route and distance from the restaurant's location to yours.
  • See and write reviews for different restaurants.
  • See all your orders in the orders page.
  • Search available restaurants.
  • and more...

📚 Major Libraries Used

  • Firebase Suite - For Auth, Database and Storage
  • Mapbox - Mapbox is used to integrate the map and build the route generation functionality.
  • Glide - For Image Loading.
  • Paytm SDK - For Paytm Payment Integration.
  • Lottie - To Display native json animations in android.
  • Smiley Rating Bar.

💻 Build Instructions

  1. Clone or download the repository :
git clone https://github.com/AdityaV025/Munche.git
  1. Import the project into Android Studio.

  2. Create a firebase project and add this android app to the project.

  3. Run the below command in the terminal to get your SHA-1 key and upload it in the project settings in your firebase console, without this you cannot authenticate users using their phone numbers.

keytool -exportcert -list -v \
-alias androiddebugkey -keystore ~/.android/debug.keystore
  1. Enable Phone Number sign in Firebase Authentication Tab in the left side.

  2. Download and add the google-services.json file from the firebase project you created earlier and add it to the project under app folder.

  3. Get your Mapbox Token and paste it in the strings.xml file

<string name="mapbox_access_token">REPLACE WITH YOUR OWN MAPBOX TOKEN</string>
  1. Also paste the token in the gradle.properties file
MAPBOX_DOWNLOADS_TOKEN=REPLACE WITH YOUR OWN MAPBOX TOKEN
  1. Setup a server which will generate a CHECKSUM Hash for the paytm sdk to work.After creating the server please paste the url which will return the checksum hash in the CheckoutActivity.java under the ui/order folder.Replace the GENERATE_CHECKSUM_URL with your own server url.
public class sendUserDetailToServer extends AsyncTask<ArrayList<String>, Void, String> {
        private ProgressDialog dialog = new ProgressDialog(CheckoutActivity.this);
        //private String orderId , mid, custid, amt;
        String url ="GENERATE_CHECKSUM_URL";
  1. Run the project into an emulator or a physical device.

👨 Made By

Aditya Verma

Connect with me on

Github Linkedin Gmail

👓 Also Checkout

Munche Restaurant Partner App

📜 License

MIT License

Copyright (c) 2021 Aditya Verma

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.