/Delivery-App

Web application to sell and delivery drinks. If you are interested please make your contribution to the code.

Primary LanguageJavaScriptMIT LicenseMIT

Delivery-App Monorepo

Total alerts Language grade: JavaScript Contributors GitHub language count GitHub Top Language GitHub last commit GitHub issues

Preview Sketch

A modern delivery App

"How to safe a Food?" - Lay Herman

WhyTech StackContributingAbout Me

😊 Why?

The context:

Tereza's beer distributor is getting computerized! rocket Your business, previously focused on a specific location in the city, started to receive a massive amount of orders from other points, expanding its operations, especially via delivery. This is all thanks to the excellent price of drinks and service from the sales team.

Now the distributor has some points of sale in the city to speed up service in these areas. Each point of sale, in turn, has a responsible salesperson.

As her old system, which was a set of spreadsheets, no longer meets the business needs, as it generates a lot of maintenance, Dona Tereza turned to her team of developers with an idea for an application that could speed up the lives of her team and people. who buy your products. The app needs:

  • Access via login: both customers and salespeople, as well as Tereza herself, who manages the system, must have access to the application via login, but for different functions:(1) The customer, who buys from the list of products; (2) The selling person, who approves, prepares and delivers; (3) The admin person, who manages who uses the application;

  • Make communication between customers and salespeople: the customer person places the order via "shopping cart" and the salesperson approves, prepares and sends this order. When the product is received by the purchaser, that person marks the order as "received". Both must have details about their orders;

  • Work in real-time: Orders/order details screens should be updated in real-time as these interactions take place. If the customer person places the order, it should appear to the sales person in their order dash without them needing to refresh the page. The customer, in turn, must have the information about their order also updated in real time, that is, have information if the order is being prepared or if it has already left for delivery;

The proposal enchanted, but Dona Tereza wants to see the business in action! She's willing to pay for a project MVP, and you've closed the deal with a 10-day turnaround time.

Now it's hands to work! Let's start?

Tech Stack

Stack

and much more...

🌊 Application flow

  • Common Flow that embrase:

    • (1) Login screen (/login);
    • (2) Register screen (/register).
  • Customer Flow that embrase:

    • (3) Products screen (/customer/products);
    • (4) Checkout screen (/customer/checkout);
    • (5) Orders screen (/customer/orders);
    • (6) Orders details screen (/customer/orders/id); .
  • Seller Flow that embrase:

    • (7) Order screen (/seller/orders);
    • (8) Order details screen (/seller/orders/id).
  • Administrator Flow that embrase:

    • (9) User management screen (/admin/manage).
  • General Page that embrase:

    • (9) Profile (/profile).

🏃 Getting started

Pre-requisites

  • Node(Optional): ^14.16.1 or higher.
  • Npm(Optional): 8.3.0 or higher.
  • Git(Optional): 2.25.1 or higher.
  • Docker(Optional): 20.10.12 or higher.

Clone the project from Github :

$ git clone git@github.com:murilorsv14/Delivery-App.git
$ cd Delivery-App

🐳 Docker Method

If you have docker installed, you can run with:

$ docker-compose up

Pre-requisites If everything is ok, you will be able to open at:

http://localhost:3000

Default method

Install backend and frontend folder dependencies and start react app and node server:

$ cd src/back-end
$ npm install
$ npm start
$ cd src/front-end or ../back-end
$ npm install
$ npm start

If everything is ok, you will be able to open at:

http://localhost:3000

👣 Next steps

  • Improve security change md5 for bcrypt hash
  • Deploy on heroku
  • Feature: quantity item in Products Page
  • Improve tests for 90% coverage
  • Implements atomic design in Front-end

🤝 Contributing

This project is for study purposes too, so send me an email telling me what you are doing and why you are doing it, teach me what you know

All kinds of contributions are very welcome and appreciated!

  • ⭐️ Star the project
  • 🐛 Find and report issues
  • 📥 Submit PRs to help solve issues or add features
  • ✋ Influence the future of Delivery-App with feature requests

To learn how to contribute, read the Contributing Guide before making the pull request.

To learn a little more about the implemented architecture, read the Architecture Design.