Coder Social home page Coder Social logo

aaaorg / mom Goto Github PK

View Code? Open in Web Editor NEW
1.0 0.0 0.0 1 KB

My Order Management is a simple e-shop for small groups and businesses.

Home Page: https://arcaneappsalchemists.org/mom

License: MIT License

api axum colleagues ecommerce ecommerce-api ecommerce-application ecommerce-platform ecommerce-store friends rust

mom's People

Stargazers

 avatar

mom's Issues

Feature: Purchases page

User story

As an end user, I would expect to see history of my purchases.
As an end user, I would expect to be able to export order history.

Acceptance criteria

  • I can see sortable and filterable list of my purchases, including all details
  • I can click export button and download file containing my purchases

Feature: Sign in methods

User story

As an end user of the app, I would expect to see simple sign in flow.
As a supplier user, I would expect to see simple sign in flow.
As an end user, I would expect to see my user info change in application when IDP info changes. (ADR)
As an admin, I would expect to be able to manage user's permissions using claims when using 3rd party OIDC provider.

Acceptance criteria

  • In the App bar, I can see whether I am logged in or not
  • When logged in, I can see my profile name and log out button
  • When not logged, I can see log in button
  • When visiting from android or iphone, I see my default sign in method first (may not be possible)
  • When logged from 3rd party IDP, I would expect to automatically update my user information based on that.
  • I can configure claims to map users to specific roles based on OIDC claims.

Feature: CRM Purchases page

User story

As a supplier user, I would expect to see history of purchases of products I supplied, including end user who purchased it.

Acceptance criteria

  • I can view, sort and filter orders from my customers.

Feature: Notifications

User story

As an end user, I would expect to see when certain supplier invoices customers.
As an end user, I would expect to see e-mail confirmation when purchasing product.
As an end user, I would expect to see confirmation in the application of my choice.
As an end user, I would expect to see notification when product is restocked. (ADR)
As an end user, I would expect to be able to config notifications for product restock. (ADR)
As an end user, I would expect to be able to add other communication methods (App notification, extension, Teams, Telegram, Discord).
As an end user, I would expect to not see reminders to pay for invoice for at least 2 days after marking it paid, as payment may be in the process.
As a supplier user, I would expect to see notifications when someone purchases my product.
As a supplier user, I would expect to see notifications when product goes out of stock.
As a supplier user, I would expect to see notifications when product is predicted to go out of stock soon. (ADR)
As a supplier user, I would expect to see notifications when someone pays an invoice I have created.
As a supplier user, I would expect to see reminders to confirm payment 2 days after customer marked it paid.
As an admin, I would expect to see notifications when something goes wrong.

Acceptance criteria

  • I get notification via my prefered channel when supplier invoices me.
  • I get e-mail notification when I purchase product.
  • I get notification via my prefered channel when I purchase product.
  • I get notification via my prefered channel when product is restocked.
  • I can configure notifications for product restock.
  • I can setup other communication methods.
  • I do not get notification for a specified time after I mark my invoice as paid.
  • I can see notification when customer purchases my product.
  • I can see notification when my product is out of stock.
  • I can see notification when my product is nearing out of stock.
  • I can see notification via my prefered channel when I am invoiced.
  • I can see notification via my prefered channel when I have unpaid invoice after specified time.
  • I can see notification via my prefered channel when something goes wrong.

Feature: Kiosk shopping support

User story

As an end user, I would expect to be able to order product using kiosk.
As an end user, I would expect to not be required to remember certain ID when buying via kiosk.
As an end user, I would expect to be protected from malicious users abusing kiosk with my ID.
As an end user, I would expect to see instructions how to self checkout and manage machines.
As an end user, I would expect to be able to authenticate at kiosk using card, chip, app or something similar instead of username and password.
As an end user, I would expect to be able to purchase product at kiosk using simple UI. (ADR)
As an end user, I would expect to be able to purchase product at kiosk using scanner.
As an end user, I would expect to be able to purchase product at kiosk using AI camera detecting my purchase. (ADR)

Acceptance criteria

  • I can order and checkout using touchscreen kiosk directly at store.
  • I can sign in using something I have.
  • I can display instructions how to use kiosk or operate cooking utensils and other equipment.
  • I can see only truly important details in kiosk mode.
  • I can scan product to purchase it.
  • I can show my face and product on camera to automatically purchase product.

Feature: CRM Products page

User story

As a supplier user, I would expect to be able to create product with optional components, like hot dog with ketchup, mustard or both.
As a supplier user, I would expect to be able to create new product with description and image.
As a supplier user, I would expect to be able to create edit product's description and image.
As a supplier user, I would expect to be able to retire product.
As a supplier user, I would expect to be able to make bonus menu like 2+1 free.
As a supplier user, I would expect to be able to work with products without knowing database ID and other unimportant attributes.
As a supplier user, I would expect to be able to easily add any image with various sizes and ratios.
As a supplier user, I would expect to be able to easily crop image and preview it in shop.
As a supplier, I would expect to be able to configure my own purchases as instantly invoiced.

Acceptance criteria

  • I can configure product with optional components.
  • I can add new product with parameters and image.
  • I can edit products paramters and images.
  • I can retire product.
  • I can configure menu from multiple products.
  • I can configure product as not buyable standalone.
  • Automatic and hidden attributes are not part of user flow.
  • Product image is automatically optimized.
  • Product image may be cropped when uploading it.
  • Product image is responsive.
  • I can configure specific purchasing options for each product.

Feature: Branding

User story

As an end user, I would expect to see all communication and documents to be standardized and branded in the same way.

Acceptance criteria

  • I can see website, notifications and reports branded.

Feature: Products page

User story

As an end user, I would expect to see items available to purchase.
As an end user, I would expect to see where the item is located.
As an end user, I would expect to see item quantities available.
As an end user, I would expect to see description of the product.
As an end user, I would expect to see price of the items available to purchase.
As an end user, I would expect to see product's price in my currency. (possibly nice to have feature)
As an end user, I would expect to see image of the product.
As an end user, I would expect to see products on sale. (possibly nice to have feature)
As an end user, I would expect to see button to purchase product. (ADR)
As an end user, I would expect to see supplier of the product I am buying it from. (ADR)
As an end user, I would expect to see when my prefered payment method is not available for the product. (ADR)
As an end user, I would expect to be able to cancel wrong purchase for a limited time automatically.
As an end user, I would expect to be able to cancel wrong purchase with supplier's confirmation after a longer period of time.
As an end user, I would expect to be able to purchase product with optional components, like hot dog with ketchup, mustard or both.
As an end user, I would expect to see recommended products for me first.
As an end user, I would expect to see my favorite products first.
As an end user, I would expect to be able to favorite specific product.
As an end user, I would expect to be able to sort by categories and price.
As an end user, I would expect to be able to open more details when clicking on product.
As an end user, I would expect to be able to buy specific quantity of a product at once.
As an end user, I would expect to be able to provide feedback on purchased product.
As a customer, I would expect to be able to see date of product creation/restock.
As a customer, I would expect to be able to see label next to NEW product.
As a customer, I would expect to be able to see label next to RESTOCKED product.
As a customer, I would expect to be able to sort by NEW/RESTOCKED product.
As a customer, I would expect to be able to click on more details for each product with share button.

Acceptance criteria

  • I can view, order, filter and checkout products using browser on my prefferred device.
  • I can see the quantity of each product.
  • I can see the description for each product.
  • I can see, where the product is located, in case there are multiple stores.
  • I can see the price of each product.
  • I can see the price of each product in my currency.
  • I can see the image of each product.
  • I can see a label when product is on sale, with percentage and/or ammount of.
  • I can see button to purchase product.
  • I can see supplier's name or avatar next to a product I am buying.
  • I can see a warning, when my prefered purchase method is not available for certain product.
  • I can cancel wrong purchase for a limited time.
  • I can request purchase refund with supplier's confirmation.
  • I can add addons to products like ketchup to hotdog.
  • I can see my most purchased products first.
  • I can favorite specific products.
  • I can see my favorite products first.
  • I can display all details for specific product.
  • I can purchase multiple quantities of the same product at once.
  • I can rate certain product.
  • I can see product avg. rating.
  • I can see date of product creation and restock in details.
  • I can see label NEW next to a new product.
  • I can see label RESTOCKED next to a new product.
  • I can sort by NEW/RESTOCKED labels.
  • I can share product link by clicking share button.

Distribution: App downloads

User story

As an end user, I would expect to be able to download app from play store. (ADR)

Acceptance criteria

  • I can find MOM app in Play store

Decision-making: Choose frontend solution

Possibly use Quasar (Vue)

Use pinia store to cache products - use websockets to validate and update properties (maybe split often changing things like inventory and price and near permanent properties like name description and image)

Feature: Multiple payment methods

User story

As an end user, I would expect to be able to purchase product with monthly QR payment. (Default)
As an end user, I would expect to be able to purchase product with instant cash payment.
As an end user, I would expect to be able to purchase product with instant QR payment.
As an end user, I would expect to be able to select my default payment method at kiosk.
As an end user, I would expect to be able to select my default payment method at mobile.
As an end user, I would expect to be able to select from all methods in web UI.
As an end user, I would expect to be able to pay with crypto. (ADR)

Acceptance criteria

  • I can purchase product and be invoiced monthly with QR method.
  • I can purchase product with cash method
  • I can purchase product with instant QR method
  • I can set default kiosk payment method at my profile page.
  • I can set default mobile payment method at my profile page.
  • I can select from a menu payment method for specific purchase.
  • I can purchase product using crypto.

Feature: CRM Invoices

User story

As a supplier user, I would expect to see history of invoices and payments of products I supplied, including end user who pays for it.
As a supplier user, I would expect to be able to create invoices, which are automatically sent to customers.
As a supplier user, I would expect to be able to manually resend invoice.

Acceptance criteria

  • I can view, sort and filter invoices I invoiced to my customers.
  • I can invoice all customers at once.
  • I can invoice specific customer.
  • I can manually resend or notify customer to pay invoice which is due.

Feature: Environment monitoring

User story

As an end user, I would expect to be able to enjoy products that have perfect temperature. (ADR)

Acceptance criteria

  • Products are stored in monitored and regulated environment

Feature: In-app user feedback

User story

As an end user, I would expect to be able to send feedback on application and features I want.
As a supplier, I would expect to be able to send feedback on application and features I want.
As an admin, I would expect to be able to send feedback on application and features I want.

Acceptance criteria

  • I can fill form to send feedback directly from application.

Feature: Multilingual Support

User story

As an end user, I would expect to see application in my language by default.
As an end user, I would expect to be able to change application's language to other language or default language. (ADR)

Acceptance criteria

  • I can see website in my prefered language if available.
  • I can change display language in app bar.

Feature: Report an issue

User story

As an end user, I would expect to be able to generate support ticket to application admin.
As an end user, I would expect to be able to generate support ticket to supplier when some product info is wrong.
As an end user, I would expect to be able to generate support ticket to supplier when some products stock is wrong.
As a supplier, I would expect to be able to generate support ticket to application admin.
As an admin, I would expect to be able to generate support ticket to application developer.

Acceptance criteria

  • I can fill form to generate ticket for admin.
  • I can full form to generate ticket to supplier to report wrong info.
  • I can full form to generate ticket to supplier to report wrong stock quantity.
  • I can full form to generate ticket to developer to report an issue.

Feature: Request new product

User story

As an end user, I would expect to be able to request new product.
As an end user, I would expect to be able to request restock of the product.

Acceptance criteria

  • As a customer I can fill form to ask for new product.
  • As a supplier I can view requested products.
  • As a customer I can erquest restock of product which is almost out of stock.
  • As a customer I can erquest restock of product which is out of stock.

Feature: Inventory management

User story

As an end user, I would expect to be able to satisfy my hunger anytime I need. (ADR)

Acceptance criteria

  • There is always something to buy.

Feature: Browser extension

User story

As an end user, I would expect to be able to use extension in browser to be able to quickly purchase product.
As an end user, I would expect to be able to use extension in browser to see notifications.

Acceptance criteria

  • I can install browser extension
  • I can use browser extension to purchase product
  • I can use browser extension to view notifications

Feature: Integrations

User story

As an end user, I would expect to be able to interact with application using chat bots (Teams, Telegram or Discord)

Acceptance criteria

  • I can interact with MOM using Teams
  • I can interact with MOM using Telegram
  • I can interact with MOM using Discord

Feature: Reporting

User story

As an end user, I would expect to see e-mail summary of my daily purchases.
As an end user, I would expect to not see e-mail summary of my daily purchases when there are no items in the shop.
As an end user, I would expect to not see e-mail summary of my daily purchases when there is holiday. (ADR)
As an end user, I would expect to not see e-mail summary of my daily purchases when I have out of office in the calendar. (ADR)
As an end user, I would expect to not see e-mail summary of my daily purchases when I haven't purchased anything in the past month.
As an end user, I would expect to be able to configure e-mail summary of my daily purchases.

Acceptance criteria

  • I can configure daily e-mail of my daily purchases.
  • I do not get any daily e-mail of my daily purchases when there are no products in the shop.
  • I do not get daily e-mail of my daily purchases when there is no workday or holiday.
  • I do not get daily e-mail of my daily purchases when I have out-of-office set in the calendar.
  • I do not get daily e-mail of my daily purchases when I haven't purchased anything in the past month.

Architecture: User roles

User story

As a supplier user, who is also optionally end user, I would expect to be able to do everything as end user.
As an admin, who is also optionally end user, I would expect to be able to do everything as end user.
As an admin, who is also optionally supplier user, I would expect to be able to do everything as supplier user.

Acceptance criteria

  • As a supplier, I can also do everything as a customer.
  • As an admin, I can also do everything as a customer.
  • As an admin, I can also do everything as a supplier.

Feature: User profile page

User story

As an end user, I would expect to see my profile.
As an end user, I would expect to be able to setup limit to protect me from overspending. (ADR)
As an end user, I would expect to be able to setup alerting to protect me from overspending.
As an end user, I would expect to be able to participate in the system to help out others.

Acceptance criteria

  • When logged in, I can navigate to my profile page and see my information and preferences.
  • I can configure my spending limit, which prevents me from purchasing more products.
  • I can configure alerts when I am overspending.
  • I can apply for supplier access.

Feature: Invoices page

User story

As an end user, I would expect to see current amount of money to be paid.
As an end user, I would expect to see history of my invoices and payments.
As an end user, I would expect to be able to reprint invoice.
As an end user, I would expect to be able to config that I paid for invoice.

Acceptance criteria

  • I can see total amount of money to be paid.
  • I can see all my invoices and details.
  • I can reprint invoice.
  • I can mark my invoice as paid.

Feature: CRM Inventory management page

User story

As a supplier user, I would expect to be able to adjust price of product on stock.
As a supplier user, I would expect to be able to make product on sale.

Acceptance criteria

  • I can edit price of product in stock.
  • I can promote sale of a product in stock.

Feature: Supported devices

User story

As an end user, I would expect to be able to order product using mobile app.
As an end user, I would expect to be able to order product using browser.

Acceptance criteria

  • I can navigate app using mobile device.
  • I can navigate app using desktop device.

Feature: Audit Log page

User story

As an end user, I would expect to see my audit logs of my activities.
As an supplier, I would expect to see my audit logs of my activities and also audit log of customers' interactions with me and my products.
As an admin, I would expect to see audit logs for each inventory change, purchase, notification sent and backup created.

Acceptance criteria

  • As a customer, I can see filterable and sortable log of my activities
  • As a supplier I can see filterable and sortable log of my activities and button to see other customers' interactions with me. (ADR)
  • As an admin I can see filterable and sortable log of my activities and button to see all users activities and system activities (ADR)

Feature: Weather relations

User story

As a supplier, I would expect to be able to integrate with some local APIs to generate smart metrics based on weather and other conditions. (ADR)

Acceptance criteria

  • I can see current weather next to a purchase.

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.