Skip to content

ptayal76/hotshot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

185 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

Lohit - Hostel

Hotshot

Hotshot is your goto app for all day needs at IITG. Be it ordering food, sending images to stationary or just checking out shops it does it all. With support for refund along with pre-payment, Hotshot boosts hassle free payments with QR authentications. User Friendly UI, easy to order and secure checkouts are the corner stones of this Project.

Ideation

Our team devoted a significant amount of time to discussing and refining various ideas before ultimately settling on our app's models, user interface (UI), and routes. Our primary emphasis throughout the process was on ensuring the app would effectively cater to the needs and preferences of both users and shopkeepers and facilitate seamless interactions between the two.

Features

  • Light/dark mode toggle
  • Pre-Payment
  • Filters (currently-open, top picks)
  • Order history
  • QR scanner for authentication
  • Unique QR generator
  • Add to favourites
  • Real-time shop updates
  • Search functionality
  • Check weather the stock is in stock
  • Mobile number verification

Tech Stack

Client: Flutter

Server: Node, Express, Firebase

Database: MongoDB

External API Used: Google Auth, Razorpay, Multer, jsonwebtoken, qrcode-reader, qrcode, jimp, cloudinary, streamifier.

Screenshots

image

image

Hosted server

https://hotshot-a109.onrender.com

Run server locally

Clone the project

  git clone https://github.com/ptayal76/hotshot.git

Go to the project directory

  cd hotshot

Go to the backend directory

  cd server

Install dependencies

  npm install

Start the server

  npm start

Download Apk file

https://drive.google.com/file/d/1FGVDnvV_6aKKeRuzYzPucPQ5ruBIlh4N/view?usp=share_link

API Documentation

https://documenter.getpostman.com/view/25646091/2s93CHtaUP

Environmental Variables

MongoDB Database URL

MONGO_URL

JSON Web Token Key

JWT_SEC

Razorpay Key ID

RZP_KEY_ID

Razorpay Secret Key

RZP_SEC_KEY

Port

PORT

Cloud

CLOUDNAME

API key

APIKEY

API Secret

APISECRET

Demo

https://drive.google.com/file/d/1bhynKPLm0KE7RNo0_wtXCfXOwMYqvK2F/view?usp=share_link

https://drive.google.com/file/d/13qHRBbO3oiyhE6q_nr27PHbNbQ6b-tex/view?usp=share_link

https://drive.google.com/file/d/1r7F55DGd65kcgt5FlxQb2V3dFXqgHFWT/view?usp=share_link

Working of User-Side of the App

Once you click on customer sign in if you are not a registered user app will redirect to google auth registration. From there, you can choose your email id to register. Once you are registered, you'll see a home page.

Home Page

The top left corner has a sidebar containing user details, order history, pending orders, Light/Dark mode, feedback, and logout options.

The top right corner consists of the logout button and user cart. In the user cart, you'll see all the orders the user adds.

Also, there is a search bar and other filter options for restaurants. There you see a top picks section containing the top-rated restaurants and all other restaurants in restaurantcontexts.

A bottom navigation bar allows users to search shops based on their categories.

Here you cannot order from closed restaurants (black and white). Although you can visit it. Other you can select, and it goes to the restaurant's page.

Restaurant

The top of the page contains Restaurant details: Name, Opening-closing time, location, and call details of the shopkeeper. There is also an option for the user to rate the restaurant, and also user can add this restaurant to its favorite list.

All dishes are displayed, which are available on the restaurant's menu. Users can add or subtract any dish any number of times to order, and these orders will be added to the user's cart.

Cart

In the user cart, all orders of the user are displayed .here all orders are segregated based on the restaurant. For every order, a checkout page is available for the user through which it is directed to the payment page. In the cart also, there is a feature to increase or decrease the number of dishes.

Razorpay interface

Razorpay Payment Interface is integrated in the app when user proceeds on Buy Now at the CheckOut Screen. Shop Owner will have to fill RazorPay Merchant Credentials while registering on the app. On this interface page, the user fills it's bank details and gets the payment done. After payment is made, the order removes from the user's cart, and when the shopkeeper accepts the order, it comes to the user's pending orders and the shopkeeper's accepted order.

5 possible status

Every order has five possible status: paymentpending, responsepending, accepted, rejected, completed.

paymentpending: if an order is in the user's cart, it's simply a paymentpending order.

responsepending: if payment is completed, but the shop owner hasn't responded, then it's a responsepending, and it removes from the user's cart.

accepted: after the order comes to pending orders of the shop owner, it can respond accepted or not accepted. If the owner chooses accepted, it moves to accepted orders of the shop owner and pending orders of the user.

rejected: if the shop owner rejects it, the order moves to reject orders of owner and user.

completed: If an order is accepted by the shop owner and collected by the user after scanning QR, the order moves from pending orders to the user's order history, and the status becomes completed. Also, on the shopkeeper's side, it moves to order history and gets completed.

Collection of order

Once the order comes in pending orders of the user, there will be an option for QR generation, which contains order-id. When the user visits the shop to collect the order, the shopkeeper scans the QR, and if QR is valid, the status updates to completed.

Working of Owner-Side of the App

Once you click customer sign-in, it redirects to google auth if you are not registered. After you are signed in with Google Auth, a registration form appears for the shopkeeper to fill in its details. Once the form is submitted home screen of the owner appears. Please wait for a while after Clicking Submit, as it takes a while to upload the picture.

Home screen

On the owner's home screen, the owner can also see a side drawer like a user where the owner can see profile, order history, pending orders, insights, change mode to the light mode or dark mode, feedback for the app, and a logout option.

In the top right corner is an icon for the owner's profile. A scan QR option is available for scanning orders of users. A toggle button is provided to update the shop's open or close status. An add item button is always provided for adding any new item to its menu. Below it, all items in the menu are displayed.

A bottom navbar is provided for changing the screen to the accepted orders page or current orders page.

Current orders page

On this page, the owner can see all current orders whose responses are pending.

Accepted orders page

On this page, the owner can see all accepted orders whose responses are pending.

Authors

Feedback

If you have any feedback, please reach out to us at dawravaibhav@gmail.com

Color Reference

Color Hex
Theme Color #EF6669

Important Note

Please handle the app patiently, don't press any button twice and wait for further screen to load.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 10