Advertisement
Guest User

Untitled

a guest
Feb 27th, 2019
1,206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.75 KB | None | 0 0
  1. Business requirements:
  2. A - Invoice -
  3. Inputting process
  4.  
  5. B - Accounting (gross, net - all of markups, cost of good sold)
  6. C - (good-to-have): Automate population of Form
  7.  
  8. Technical implementation:
  9. Req A:
  10. Goal: generate a list of services for a customer -
  11. show total to charge customer
  12. and conditionally show markups and all gross revenue (total of markups) as tooltip Add markups to the Form.
  13. - Flatten for pdf and printer
  14.  
  15. Side requirements: Installation process should involve User Form to Add/Update a User, Customer Form to Add/Update a Customer.
  16. - Provide DigitalForm's Form to generate Json schema and use that for Create/Edit Service (Mozilla React-Form)
  17. form mandatory fields: CoGS, markup: price, configure tax percentage on sum of CoGS and markup.
  18. - Allow user to delete the service
  19. implementation: Select the services provided to customer to build the invoice, select customerName
  20.  
  21. Req C: Automate download & population of Form
  22. with right customer profile data, given we have 16 forms,
  23. List of customer profiles
  24. customerA,
  25. customerB,
  26. customerC
  27.  
  28. drag Form 1167 to customerC-name,
  29. 0) show a modal of vehicles/cases the customer has (optional as if we require user to expand customnerC Card)
  30. 1) store a timestamp draft of the Form (containing customer data) for that customer
  31. 2) Populate the Form that contains customer data (open in a modal/new tab)
  32. 3) User should have the ability to Save the Form
  33. 4) User should have the ability to Retrieve (under customer profile) & Update the Form
  34. 5) User should have the ability to Finalize & print to pdf
  35. 6) User should have the ability to Trash the Form if outdated
  36. 7) User should have the ability to Restore the Form if trashed by mistake
  37. 8) User should have the ability to set Trash X days for garbage collection (cleanup of old X days Forms)
  38. 9) The system should be able to perform Trashing by X days
  39.  
  40.  
  41.  
  42. Meteor, MongoDB, React & TypeScript
  43.  
  44. Microservice architecture is not mandatory
  45.  
  46. ####################################
  47. ## MICROSERVICE 1 user info ##
  48. ## user ##
  49. user: # user<Schema>
  50. _id: uuid
  51. type: JSON # build this string as a string list of comma-separated types base on the number of apps a user joins. A user can be both owner/consumer, buyer/seller: 'foodie-consumer, foodie-truck-owner', patronage/buyer
  52. apps:
  53. - appName: String
  54. appId: uuid # reference to the App. if,
  55. userId: uuid # backward reference to the user _id above
  56. realm: String # provider where they join: Google, Twitter, Facebook, etc.
  57. email: String # default to abc@gmail.com
  58. emailVerified: Boolean
  59. required: JSON # "email,name,userName,birthDay,gender, password"
  60. userName: String
  61. name:
  62. userId: uuid
  63. firstName: String
  64. middleName: String
  65. lastName: String
  66. suffixName: String
  67. career: String
  68. jobTitle: String
  69. company: String
  70. gender: String
  71. ethnicity: String
  72. origin: String
  73. addresses: # multiple addresses
  74. - address1: String
  75. address2: String
  76. city: String
  77. state: String
  78. zip: String
  79. country: String
  80. mainAddress: Boolean # hometown, e.g. Orange CA
  81. currentAddress: Boolean # place of residence, e.g. Quincy MA
  82. password: String
  83. questions: JSON # storing questions for password reset
  84. answers: JSON # storing answers for password reset. User input of answer for questions[0] must match answers[0], likewise for the other two.
  85. birthDate: Date
  86. phoneNumber1: String
  87. phoneNumber2: String
  88. createdAt: Date
  89. updatedAt: Date
  90. lastSeenAt: Date
  91.  
  92. # foodieUser<Schema> extends user<Schema>
  93. foodieUser:
  94. _id: uuid # for purpose of tracking how many foodie users. There can be users using other Apps, only the one active on this App has this uuid pertaining to the foodie for extra security
  95. type: JSON # inherits from the generic user type, foodie-app specific type
  96. usedId: uuid # matching user _id
  97. foodiePreferences: [] # String JSON "['burger', 'burrito', 'tapaz', 'taco', 'salad']", allow user to sort their preference
  98. foodieAllergences: [] # String JSON
  99. favoriteRestaurants: []
  100. favoriteFoodtrucks: []
  101. favoriteIngredients: []
  102. favoriteLocations: [] # list of their neighborhoods or cities
  103. favoriteDishes: [] # list of restaurant|foodtruck to try, { foodtruckId, foodtruckName, dishes: []}
  104. favoriteRecipes: [] # data-mining for kitchen & cookware business
  105. wishList: [] # survey purpose, polls, wish to have several more dishes of salmon salad at a place X, wish to have more sushi in my area.
  106. coupons: []
  107. accumPromoPoint: Number
  108. role: String # admin | tech-support | regular-user
  109. status: String # active | disable | gone | banned | locked, locked if not activated.
  110.  
  111. # extension <foodieUserTransaction schema>
  112. _id: uuid
  113. appUserId: uuid # matching user _id
  114. credit: String # buy-in credits
  115. inAppPurchases: []
  116. ####################################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement