Skip to content

ebwittenberg/oms-project-app

 
 

Repository files navigation

Order Management System (OMS): Tony, Eric W., Eric M.

Backend Project

Table of contents

  • Description
  • Features
  • Screenshots
  • Technologies
  • Challenges
  • MVP
  • Reach Goals
  • Authors

Description

The Order Management System is inspired by real world implementations like Shopify, Oracle NetSuite, and others. The targetted user is anyone who manages inventory. Using our app, the user can simulate inventory outflows as customers purchase goods.

Features

  • Ability to register unique login for company employees
  • Add unique items or select prefilled options from categories like furniture.
  • Choose a specific item to simulate purchases over a selected time period
  • User can also generate a random simulation of all items in their inventory
  • Select number of customers per day
  • Increase a specific item's likelihood of purchase
  • Running simulation will show revenue earned, cost of outgoing stock, and profits for that time period
  • After the simulation has run, user can select specific day to visualize inventory amounts and purchase quantities for each item
  • Color coded simulated stock positions help visualize inventory outflows per day

Screenshots

Sign in page

alt-text

Login page

alt-text

Dashboard

alt-text

Add Item

alt-text

Single item simulation

alt-text

Cash flows

alt-text

Increase likelihood of purchase

alt-text

Random simulation result final day

alt-text

Random simulation result day 3

alt-text

Day to day slider simulation visualization

Technologies

  • Node.js
  • Express
  • PostgreSQL
  • JavaScript
  • HTML
  • CSS / Bootstrap
  • Mocha (TDD)
  • AWS
  • Nginx
  • Passport
  • OAuth

Challenges

  • Challenge #1: Constructing a database architecture using PostgreSQL that we could then build functionality around.

    • Solution: Organized data into 5 tables (users, customers, items, locations, purchases) that represents the real world information.
  • Challenge #2: Allowing the user to securely add a single item and visualize it on the dashboard

    • Solution: Using forms, looked for post requests that allowed the user to dynamically manipulate tables in the database. This involved creation of the proper routes, controllers, and models in traditional MVC fashion.
  • Challenge #3: Allowing the user to visualize inventory outflows of the items they want to test, using a selected number of days and customers.

    • Solution: Scaled existing functions to work for user entered data and added new functionality that allows the tables to scale appropriately
  • Challenge #4: Showing the user how their inventory would change incrementally over time without refreshing the entire page for each increment

    • Solution: Used client-side JavaScript once the database was changed to visualize the day-to-day changes, without having to query the database again.
  • Challenge #5: Understand and implement GitHub OAuth for user login.

    • Solution: Have OAuth work beside standard login procedures without interferance or overlap.

MVP

A user can add items and visualize inventory outflows for one item in their inventory over a fixed number of days.

Reach Goals

  • Random simulation using all entered inventory √
  • Make an item more likely to be purchased than others √
  • Build a visualization of change over time √
  • Build inventory replenishment functionality

Authors

About

Order Management System - DigitalCrafts Back-End Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 75.2%
  • HTML 23.9%
  • CSS 0.9%