Git Product home page Git Product logo

parcha's Introduction

Parcha

Token based application to ensure social distancing at market place or grocery shops

Concept

Amid the lockdown situation caused due to the COVID-19 outbreak, many local authorities have allowed the market (mainly for essential commodities) to be open for a restricted period of time. Despite awareness drives and police intervention, the marketplaces or grocery shops in the city continue to remain crowded with people in the allowed time. The media has reported several such cases. The best solution in such cases appears to be direct-to-door delivery.

While direct-to-door delivery in western countries is comparatively easy because of a few reasons such as the existence of zip postal codes, technology, structure/architecture/town plan of the cities, government databases of households, etc. The last-mile distribution in India is particularly complicated. Even if the direct-to-door delivery is made possible in India, it will be helpful only in the lockdown period. When the lockdown is removed and the country starts to go back to its normal pace, there will again be large amounts of violations of social distancing at essential shops.

There is a need for a system that controls the number of customers at essential shops at a given time. We propose a token-based application in which people need to request for a token to visit a shop. This token shallbe valid only for that shop and for a particular time slotas chosen by the user. The distribution of these tokens will be restricted such that there is no crowding at the shops. The user is allowed to buy from a shop only if his/her token is activated. The token expires after a period of time.

Demo

Checkout our demo video on YouTube here.

Critical Aspects

  1. Minimally Online Application: In India, where good internet connectivity is not available at all places and not available for all people, we need an application which is as minimally online as possible. We need to make most operations offline. As a start, we have implemented Offline Verification in Parcha. For more details, check README of token-system.
  2. Authority Intervention: As we go through various phases of un-lockdown, various rules and regulations shall be set in place by the local administration and monitoring whether shops and marketplaces are adhering to the norms is important. We implement this by an Authority feature set, to approve the shops to be opened and to track their opening and closing times.

Workflow

Workflow for the Application

Development

The backend for the application has been developed in NodeJS, with the data being stored in a MySQL Database. For the user application, Flutter has been used to develop native application for Android and iOS Devices.

Documentation

Go to the READMEs of the individual directories of Backend/ and token_system/
The API calls are located in the Backend/ directory
The Flutter app is located in the token_system/ directory

Contributing

Feel free to contribute in the following ways:

  1. Raise an issue on our Repo here.
  2. Fork the repo, make changes and raise a PR. Information here
  3. Contact any of the authors below.

License

Licensed under the GNU GPLv3 License (the "License"); you may not use files in this project except in compliance with the License. You may obtain a copy of the License at

https://choosealicense.com/licenses/gpl-3.0/

Authors

parcha's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

parcha's Issues

Add classification during sign in

Need to add classification as users/shops/authority during sign in and make appropriate api calls accordingly. Also during registration.

The switch on the login and register pages.

  • If someone previously chose shop for login then the next time he opens the app it should still be shop.

  • The switch should also be saved across login and register pages. If someone chooses shop for login/register then it should remain shop for register/login respectively.

  • Also some feedbacks asked to improve its visibility.

Persistent Login

Once logged in, for future times - same user should get logged in automatically

Script to generate data for testing

Adding shops and users and then generating tokens for testing shall be cumbersome. Instead we can generate data usinga Python Script and load in db.

Remove unnecessary details from register page

We have finalized only Name, Email, Password, State, District, Pincode for registration for now. Let's remove the other details for now. Change login to Email and password from Contacts and password.

Shop Table shopType datatype

The datatype of shopType should be String on the frontend, and the value returned should also be the final String value like 'General Store', 'Medical Store', etc instead of Integers.

Same should be taken care of, in Backend calls as well as Frontend Entities

Status change of tokens in database

All the tokens in the database show status=1, even when there are tokens from yesterday, today and tomorrow.

Does the status change only if the shop has verified?

We are missing multiple opening slots

Major flaw is that we can't accommodate multiple opening times for shops like 10-1 and 4-7 which is how a lot of shops are functioning these days.

Issue with buttons

There is an issue with the app as a whole. Whenever a button is pressed there is a slight lag, so in the meantime if we press the button twice then the next screen is loaded twice to the stack. I have tried this for the 'QR CODE' button but this maybe a general problem for various things.

The BottomNavigation Pages should have a drag down reload

As of now if someone books a token then the new token doesn't show up in token history, since the history page is already built as soon as one signs in. There should either be a drag down reload or we should be able to reload certain sections if certain actions take place.

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.