All Projects → tusharnankani → Swadeshi

tusharnankani / Swadeshi

Licence: GPL-3.0 license
Implementing a Web Based solution through which farmers can participate in a commodity exchange market

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects
shell
77523 projects

Projects that are alternatives of or similar to Swadeshi

Riot
Simple and elegant component-based UI library
Stars: ✭ 14,596 (+69404.76%)
Mutual labels:  simple, client-side
Ftxui
💻 C++ Functional Terminal User Interface. ❤️
Stars: ✭ 433 (+1961.9%)
Mutual labels:  simple, user-interface
AxleJS
Fetch, supercharged.
Stars: ✭ 28 (+33.33%)
Mutual labels:  client-side
simple-commands
An (even more) simplified and intuitive command framework for Spigot.
Stars: ✭ 14 (-33.33%)
Mutual labels:  simple
advancedSmsManager
Advanced SmsManager is avery handy library for sending sms for single and two sim-card phones with many options.
Stars: ✭ 27 (+28.57%)
Mutual labels:  simple
Quell
Quell is an easy-to-use, lightweight JavaScript library providing a client- and server-side caching solution for GraphQL. Use Quell to prevent redundant client-side API requests and to minimize costly server-side response latency.
Stars: ✭ 473 (+2152.38%)
Mutual labels:  client-side
scaffold
WIP - Simplified PHP framework, using modern practices and techniques. Making use of the best components available.
Stars: ✭ 56 (+166.67%)
Mutual labels:  simple
ngx-ion-simple-mask
Input mask for Angular/Ionic
Stars: ✭ 21 (+0%)
Mutual labels:  simple
tonic
A Low Profile Component Framework – Stable, minimal, easy to audit, zero-dependencies and build-tool-free.
Stars: ✭ 747 (+3457.14%)
Mutual labels:  user-interface
react-click-to-edit
Make any text editable.
Stars: ✭ 16 (-23.81%)
Mutual labels:  simple
httpfs
Go 编写的静态文件服务器,支持文件拖拽上传,无第三方包依赖, 支持 Windows, Linux , Darwin。
Stars: ✭ 28 (+33.33%)
Mutual labels:  simple
MIMS
PyQt application for creating mass interaction models and compiling them into Faust dsp code, or ~gen objects (for Max/MSP)
Stars: ✭ 22 (+4.76%)
Mutual labels:  user-interface
hugoblog
Hugoblog is responsive, simple, and clean that would fit for your personal blog based on Hugo Theme Static Site Generator (SSG)
Stars: ✭ 48 (+128.57%)
Mutual labels:  simple
ddu.vim
Dark deno-powered UI framework for neovim/Vim8
Stars: ✭ 232 (+1004.76%)
Mutual labels:  user-interface
frizzle
The magic message bus
Stars: ✭ 14 (-33.33%)
Mutual labels:  consumer
smurf
simple markdown surfer
Stars: ✭ 38 (+80.95%)
Mutual labels:  simple
simple-jwt-provider
No description or website provided.
Stars: ✭ 33 (+57.14%)
Mutual labels:  simple
ue4-uitween
Unreal 4 UMG UI tweening plugin in C++
Stars: ✭ 178 (+747.62%)
Mutual labels:  user-interface
VIZIA
A declarative GUI library written in Rust
Stars: ✭ 551 (+2523.81%)
Mutual labels:  user-interface
SMmuiscPlay
🎼极简模式JavaScript音乐播放器组件,极简、小巧、无依赖、可定制,适用于手机页面,H5活动页,微信页面等的音乐播放支持
Stars: ✭ 40 (+90.48%)
Mutual labels:  simple

Swadeshi

Problem Statement (TSEC Codestorm - Hackathon'20)

  • Implement a Web Based solution through which farmers can participate in a commodity exchange market. The solution should explain the process involved and the benefits of commodity exchange to the user.
  • The purpose of such an exchange is to provide a centralized marketplace where commodity producers can sell their commodities to those who want to use them for manufacturing or consumption.
  • The solution should enable farmers to create independent accounts and interact with dealers to avail the best profits and deals.

Tech Stack

  • Frontend

    • HTML5
    • CSS3
    • Vanilla JavaScript
  • Backend

    • Node.js (Express.js)
  • Database

    • MongoDB

For the Live Demo, click here.

  • The live demo replicates the behavior of the site without the need for a real server. Instead, there is a mock server that is implemented in client side JavaScript, using localStorage as the database.
  • Please refer to frontend/mock-server.js if you are curious about how the mock server is implemented.
  • To get a better understanding of how the site works, please open the developer console (Ctrl + Shift + J).
    The live demo logs a lot of details like network requests, responses and messages to the browser console.
  • The database can be inspected directly from the console by typing Database.tables.
    When the page is unloaded, the database is saved to localStorage with the key database. You can access this with localStorage.database.
  • Since this is just a prototype, there isn't any real OTP integration.
    If you run the server locally, then the OTP will be generated and logged to the server output.
    If you view the live demo then the OTP will be displayed as an alert and also logged to the browser console.

Logo

  • The wheat represents farmer's pride, and green around the wheat represents the Indian fields.

Logo of a bushel of wheat, in a green circle

Landing page flow

  • Unified landing page loads.
  • Do GET /user
    • If successful, go to respective dashboard.
  • Wait for user to enter valid phone, and press next.
  • Do POST /otp body: {phoneNumber}
    • If post is unsuccessful, then we have bigger problems.
  • (*) Wait for user to enter valid OTP, and press next.
  • Do POST /authenticate body: {phoneNumber, otp}
    • If post is successful, do GET /user
      • If user is found then go to respective dashboard.
      • Else user does not exist, goto signup.
  • Inform user that OTP is wrong, goto (*)

Project Structure

frontend
 ┣ contact
 ┃ ┣ index.html
 ┃ ┗ translation.js
 ┣ farmer
 ┃ ┣ index.html
 ┃ ┣ script.js
 ┃ ┗ style.css
 ┣ signup
 ┃ ┣ index.html
 ┃ ┣ script.js
 ┃ ┗ style.css
 ┣ videos
 ┃ ┣ farmer.mp4
 ┃ ┗ wholesaler.mp4
 ┣ wholesaler
 ┃ ┣ index.html
 ┃ ┣ script.js
 ┃ ┗ style.css
 ┣ background.svg
 ┣ index.html
 ┣ logo.svg
 ┣ mock-server.js
 ┣ script.js
 ┣ style.css
 ┣ translation.js
 ┗ util.js

Local Setup

  • Clone repository.
  • Setup MongoDB, either locally, in a Docker container or on the cloud.
  • Edit the MongoDB server Url in /server/server.js.
  • Run npm install and npm start in the /server folder.
  • Go to https://localhost:5000 in your web browser.

Website Demo

Swadeshi

Clean and simple UI.

0

Implemented Hindi and English, Font+ and Font- features for accesibilities.

1

Simple Sign Up: Mobile - OTP authentication (no need for e-mail or password)

SECURITY:

  • Mobile - OTP verification
    • OTP is valid for 5 minutes from issue time
    • Blind checking of OTP
  • Unified auth & identity token.
    • Token is stored as a cookie on the client side
    • Token valid for 2 days
    • Every privileged request is authenticated on the server side
    • Client side cookie is set to expire after 2 days

2

Farmer's Portal:

  • Minimized the number of buttons and pages for accesibility for the farmer.
  • Everything on one page.
  • Simple add and remove icon.

3

Simple add item page: Farmer can add quantity orginally with him and price per unit item.

4

5

Initially, the original added quantity is set to available quantity. As quantity is sold, the available quantity is updated, helping farmer keep track of what he added initially to the Farmer's Portal

6

Wholesaler's Portal:

7

Simple search bar to search product by category or item.

8

9

Simply selecting the item, and ordering directly the required quantity. It will be added to Ordered Items for Wholesalers, and Open Orders for Farmers.

10

Simply, pressing the tick icon, if the order is delivered, the wholesaler can update it for himself and the farmers.

11

Both the Farmer's and the Wholesaler's numbers will be provided on the portals and how the transactions will take place can be discussed over call, according to one's convenience.

Contact Page - Simple and User-friendly:

  • 24 X 7 Helpline Service Center
  • Videos in Hindi explaining working of site to help both, the farmers and the wholesalers.
  • Added FAQs, in Hindi and English

12 13 14

Authors

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].