Git Product home page Git Product logo

nearby-shops-android-app's Introduction

Nearby Shops Tweet

Get it on Google Play

About Nearby Shops - MultiVendor Food Delivery and Ecommerce App

Nearby Shops is a Free and Open-Source food delivery, grocery and local shopping platform.

Install using docker in 10 minutes at http://developer.nearbyshops.org

Website : https://nearbyshops.org | Developers Guide: http://developer.nearbyshops.org

🚩 Table of Contents

Tech Stack and app Architecture

Uses Android Jetpack and Google’s Recommended Architecture Patterns

Written in both Java and Kotlin

Libraries Used Retrofit, Ok-HTTP, Picasso, Dagger, and the Mapbox Android SDK

User-Interface is made using the modular View-Holder Pattern which makes the UI blocks modular, easy to reuse, modify and understand.

The app uses Single Activity Architecture, where most of the screens are implemented as fragments and there are only 2-3 activities in the entire project.

Features and Highlights

Support for Multiple Currencies : You can select your country and currency for your local market will be set accordingly.

Mobile First - Multi-Vendor Platform where customers can send orders to multiple Shops / Restaurants

Integrations for Sending SMS-OTP, E-mail and Push Notifications are available

Order Tracking, with live status updates for customers using E-mail, SMS and Push Notifications

Rating and Reviews for items and shops

Home delivery and pick-up from the shop (Online-to-Offline) Shopping Concept is Supported

Location based filtering is available, which means that customers will see only those shops which can deliver to their address -- other shops will be filtered out.

Vendors / Shop-Owners can track orders through orders inventory and update the order progress !

By adding delivery staff, shop-owners can deliver orders by themselves. Delivery by Market is also available.

Billing and payments are supported. Shop-owners are billed according to the number of orders they deliver successfully. And Service Providers (Market Owners) can collect payments from the shop-owners.

Order Delivery

We support both "Delivery by Vendors" and "Delivery by Market" delivery options. Vendors can provide delivery using their own delivery staff. Delivery can also be provided by Delivery Staff Employed by the Market Administrator.

Libraries Used

Android-Jetpack, Retrofit, Ok-Http, Event-Bus, Picasso, butterknife, dagger2, U-Crop, Gesture Views, Smiley Rating, Mapbox Android SDK

Third Party Integrations

SMS-OTP using MSG91

E-mail using Simple-Java-Mail E-mail Library

Push Notifications using Firebase FCM

Maps using Mapbox Android SDK and Google Maps

Payment Gateway - Razorpay

For more information please see https://developer.nearbyshops.org/integrations/e-mail-integration.html

Concept

Nearby Shops is a Hyperlocal Shopping platform where a customer can buy directly from the shops available in his/her local area and get their orders delivered to their home or just pick the order up from the shop.

In the new emerging world, customers are getting tired of going outside the home to shop every day. They would much prefer to simply place an order and have the products delivered to their home the same day.

Conventional e-commerce has issues ... the delivery takes a long time and it's more difficult to trust unknown vendors whom you cannot see and meet. Hyperlocal e-commerce solves these issues because delivery is faster and customers can reach out to the vendors easily.

Nearby Shops can also be used as a food Delivery platform where restaurants can use it to deliver food.

Nearby Shops implements Alibaba's New Offline-to-Online Concept, where customers discover products online and then pick those products up from physical stores.

Online to Offline

Connect With us - Need Help ?

If you want any help regarding anything. Feel free to contact us -- send a message through our forum or you can simply post an issue. Your issues will not be ignored and you will surely receive help.

Discourse Forum - https://forum.nearbyshops.org

Follow us Twitter - https://twitter.com/nearbyshopsapp

Facebook - https://www.facebook.com/nearbyshops

Facebook Group - https://www.facebook.com/groups/1144257952430940/

Contributions Welcome

https://forum.nearbyshops.org/t/project-roadmap-and-contributions-required/34/4

Improved Search with Search Suggestions for android app

Develop a PWA and Web app for Nearby Shops

i18n Internationalization support

Payment Gateway Integrations

Performance Testing and Optimization

Suggestions and Improvements in App Architecture

Code Review and Architecture

License

Copyright (c) 2020 Nearby Shops

                 GNU GENERAL PUBLIC LICENSE
                   Version 3, 29 June 2007

Copyright (C) 2007 Free Software Foundation, Inc. https://fsf.org/ Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

                        Preamble

The GNU General Public License is a free, copyleft license for software and other kinds of works.

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.

nearby-shops-android-app's People

Contributors

abajorat avatar asdrolf avatar ewouth avatar sumeetmoray avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nearby-shops-android-app's Issues

Tutorial for Firebase

Tutorial for Firebase integration

1. Account creation

Create yourself an account at Firebase

2. Go to the console

Click on the respective link in the upper right corner of Firebase or go here

3. Create new project

Just choose a name and leave everything on default.

4. Add Application

Click on ""Add Android Application to start" or similar. Put the following as package name:
org.nearbyshops.enduserappnew
If you already changed your package name, put the respective name.

5. OPTIONAL Add SHA

Loom up the following link to create a SHA-1:
SHA

6. Add JSON to code

Download the google-services.json, copy the code and just replace the whole code in your Android project in Nearby-Shops-Android-app/app/google-services.json

7. Skip step 3

SUmeet already configured all of this

8. Wait for recognization

Clean project, build and start your app.
Then wait for Firebase to recognize your app.

9. Add database

Click on the database tab, create a new one.
Copy the link and put it into your api_config.properties at databse_url

10. Add Admin SDK

Go to your settings in Firebase(icon on the top of sideboard). Go to Service Accounts.
Then click on "Generate new private key"
Copy the key and paste it into your firebase_admin_sdk_key.json in your container. (Same directory as the api_config.properties file

Geolocation not transmitted when editing address

When placing a new order, the Geolocation can be chosen and gets displayed correctly in the edit window. But it does not get updated and when going back to the order placement, it is not displayed anymore and is not passed along with the order.

Minor login suggestion

Maybe disable case sensitive usernames at the login and add strip to username to get rid of blank spaces. My autocomplete adds a blank space after the email for whatever reason and stripping blank spaces would tolerate this behavior

Out of stock but still available

Can add an item that is out of stock to cart. Just one but nevertheless.
Maybe items should not even appear in shop when out of stock.

Tipping services

Hi in the current atmosphere this is a great app. However, my interest lies on the concept of β€œinstacart”. Does this service offer a tipping service such as a user sees an order or request with a tip highlighted then accept that as a job request to collect the shopping place by an individual?

Notifications

Awesome feature btw. I was really suprised how good that works. Took me some time without a tutorial to set up Firebase but got it done. I can update the tutorial if u want me to.
Anyway, the following issues came up (I know you would be aware of most but I'm just gonna document everything):

  1. Delivery Guy gets notification when his shop receives an order, not sure if that is wanted, I don't like it personally.
  2. Delivery Guy gets no notification when pickup is requested.
  3. Shop owner gets no notification when order is delivered.
  4. Customer gets no notification at all.

Suggestions regarding users

  1. Allow Admin to remove users
  2. allow admin to change role(maybe)
  3. Allow ShopAdmin to remove staff and delivery

ShopAdmin adds himself as Delivery Guy

The shop admin can add himself as a delivery guy. He then loses his privileges as a shop admin and he cant be returned. Only my manually manipulating the database.

Trigger more updates in inventories

Would be nice if there would be more updates triggered for pick up/ Home delivery /Shop inventories. It requires manual update by sliding down to trigger the updates

Request for deletion of forks ...

Hello guys

@velebak @c0debrain @abdelazizelesh

Hey guys we really appreciate free and open-source stuff ... but we have been facing financial hardship ... therefore we decided to close source some our project ...

You guys have made a fork ... which might result in some of our revenue loss ... if you guys could delete those forks that would be really helpful ...

https://github.com/velebak/Nearby-Shops-API
https://github.com/c0debrain/Nearby-Shops-API
https://github.com/abdelazizelesh/Nearby-Shops-API

If you guys comply we will give you a free paid license ... to use our product !

Cancellations

Ity would be nice if orders could get cancelled at more ages. Especially Home delivery, which can not be cancelled at all as far as I saw.
Holds for Shop owners as well as customers.

Sample Markets

We are planning to add these following sample markets in order to give a demo about how multi-market feature works in Nearby Shops.

Suggestions and Ideas to improve the Sample Data is welcome !

Daily Essentials – Food, Grocery, Fruits and Vegetables – Delhi
Farmers Garden – Buy direct from farmers - Pune
Wires & Switches - Electrical & Hardware supplies – London
Home & Kitchen – Home, kitchen and Furniture – New York

Nerds & Geeks - Smartphones, computer and electronics | Seoul
Healing Hands | Medics Circle – Pharmacy and Medical Supplies – Italy

UC Berkeley – Institute Market
Houndras Market – Local Community Market

Locations
Seoul | New York | Delhi | London | Rome | Germany
India, London, New York

Problems generating signed APK

I had two errors coming up when I generated a signed APK.
One was about a duplicate id
The other one was a missing sibling or sth like that.
Fixed them in my project, but I forgot where exactly it happened.

Request to make profile public !

Having few public members is very good as gives good impression to the community to see that we have 2-4 people in our team !

but ... despite being an admin of this organization i cant make your profile public.
Please make your profile public yourself.

Thanks !

@abajorat @Amuri-Bonface

How can change between customers app to vendor and admin app?

Hi, I used your project for learning purposes, but after I create the store I can't switch to the vendor app and an admin app. I have tried to log in using the phone number and email provided on your website but still no success. I disabled demo mode but can't switch either. Can you help me? Thank you very much

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.