RMS Specs

From Logic Wiki
Jump to: navigation, search

RMS - Restaurant Management System

Definition

RMS is an online integrated application for specifically Restaurant / takeaway needs. it's resizeable and modular. Can be hired or purchased and host locally. All modules are accessible through API's

Modules

Base Module

Base module is N-Tier application with code-first approach.

This module contains

Licence

Licence is a two way encrypted information that tells us

  • Who is the user
  • When is the expiration of licence
  • How many restaurants covered
  • How many users covered
  • Which modules covered

in Licence database we keep these information

  • Contact details
  • Restaurant count purchased
  • Start Date
  • End Date
  • Payment Details
  • Sales information
  • Modules collection
    • Price
    • Who sold it
      • Commission amount
      • Commission payment details
Individual Purchase Licence

When this software is purchased customer should have an individual purchase licence. Licence should contain all licence data above.

It must also contain hosting information / IP address and it should specify this software is purchased.

Rental Licence

If users rent our hosted software Rental licence will be in placed. This one way encrypted licence number could be a QR code so that users can associate their apps with this licence easily.

Demo Licence

Same as above but

  • end date is shorter
  • only 1 restaurant allowed
  • Price is 0
  • No commissions allowed

Users & Rights

In RMS, there are different types and different levels of users

System Owners

Only few people can be in this type. System Owners has full access to every parts of application

System Admins

Like system owners but accessing money related screens are restricted.

Sales Reps

Can only access to sales, sales history, own customers and commissions screens

Account Owners
  • Can access only their own account and restaurants bound to that account.
  • Can manage everything underneath.
Restaurant Managers

Can access only the restaurant(s) assigned to them. Cannot manage other restaurants under same account unless they have access rights

Staff

Can access simple jobs under restaurants which assigned to them

Messaging

Internal Messaging System

System generated messages and follow ups goes here

Emails

All emails going out of the system will be managed by this module.

Booking Management

Settings

  • ban conditions
Tables
  • Capacity
  • Table Number
  • Shape
  • Can Merge
Times
  • Opening Times
  • Booking periods
  • Gap between periods
    • Related to Nr of Person (2 person = 1,5 hour, 4 person = 2 hours, 10 person 3 hours)
  • Last Booking Time
Booking
  • Max number of person to book automatically
  • Max number of bookings for each period


Restaurant Layout

Table layout of the restaurant must be set before it starts using it. A geometrical drawing and table numbers must be in place.

Attach / Detach tables

Get Booking

  • Bookings can be made by phone or by internet
  • Obey rules but if access rights are good enough rules can be overwritten
Booking Data
  • Date
  • Time
  • Name
  • Phone
  • Email
  • Nr of Person
  • Notes (From Customer)
  • Remarks (From Restaurant)
  • Booking Status (booked/ confirmed / cancelled / no show / seated / close to end of time / bill requested /paid / completed)
  • Table Nr (can be manual or automatic)
  • Origin of booking
  • Booking taken by
  • Transactions (updates / deletes etc)

Customer Profile

  • Contact Information
  • Booking history
  • Ban reason
  • No Show history

Table Management

  • Live table changes can be made during service times by drag drop
  • warnings during drag drop
  • When tables are relocated bookings should be moved with them

Reports

  • List bookings group by time periods
17.00 17:15 17:30
2 3 2
4 1 3
1 2
2 4
9 4 11
  • between 2 dates
    • Total bookings
    • Cancellations
    • No Shows
    • Group bookings by person count


Staff Management

Staff Definitions

  • Personal details
  • Contact information of staff will be entered.
  • Photo can be attached
  • Remarks / Working habits

Shifts

  • Weekly / Daily shift planning
  • Implementation
  • Holiday
  • Sickness
  • Timesheets
  • Payroll

Invoice Management

Invoice Entry

  • Company Details
  • Payment Type
  • Date
  • Amount
  • VAT
  • Image
  • Payment Information (Paid, Not Paid)

VAT Report

By date / Payment Type / Company / Amount / VAT /

Income Entry

  • Daily breakdown of income
  • Profit Loss report

Cash Flow

  • Upcoming payments
  • Long term cash planning

Purchase Assistant

  • Critical stock levels
  • Automated purchases
  • Purchase history
  • Recall a historical purchase, change and re-order

Accounting Assistant

  • Organize VAT sheets
  • Periodic profit loss
  • Expense entry - (Apart from Invoices)
  • Periodic expenses
  • Profit projections

Menu Assistant

  • Menu preparation
  • API
  • Export to pdf
  • Export CSV
  • Valid dates
  • Promotion and offers
  • Party Menus
  • Recipes
  • Wine Lists

Future Plans

Supplier API

  • Connect to suppliers and place orders within the system.
  • Invoice - Payments

Till Integration

  • Statistics
  • Recipe - Foods sold comparison
  • Drinks stock - sold comparison
  • Import income breakdown

Bank Integration

Accountant Integration

Mobile apps

Covering most of the subjects above by communicating with server through API

Technologies Used

Source Control Bitbucket
Error Handling  ?
UpTime Monitor  ?
Development Board Trello
Codes C#, MVC 5, EF 6, Angular 2, HTML5, CSS3
Database MS SQL -> it can be MySql or something else in future
CI / CD OnCheckIn
Documents Wiki : S3k.me/wiki
API Doc swagger

Release Notes

Version # Date Released By Remarks
1.0.0.0 Not Yet Ali Iybar First Release

Module Structure

Module Definition Data

  • Name
  • Short Name
  • Key
  • Rights
  • Default Rights for Groups

How it works

it should work on all base moduels natively. But if there is a relation with other modules it should override them or extend them when necessary.

All modules (apart from base module) should work together with others and should work alone with the same efficiency.