/CS3343

The group project for CS3343

Primary LanguageHTMLMIT LicenseMIT

Express management System

Role assignment

  1. Product Manager: WANG Fangzhou, ZHENG Wanying
  2. Developer Programmer: QIU Rui, LIU Pengze
  3. Qulity Assurance Engineer: WANG Ruochen, FAN Yuyang, WANG Yixuan

Get Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

  • Java Runtime Environment

Install Guide

We used Make to automate the compilation process.

Requirement

  • Unix-like environment (i.e. terminal, iTerm2)
  • Java SE 1.8
  • JDK for compilation

Installation in short

Type commands sequentially in terminal,

git clone https://github.com/patrickwang96/CS3343.git
cd CS3343/
make new
make build
make jar

Or simply download the JAR

Details

Download the source code from Project page and Unzip or download by git clone,

git clone https://github.com/patrickwang96/CS3343.git

To create structure of the compiled classes, go to CS3343 repo's folder first,

cd CS3343/

and run the commands below in terminal,

make new 

To compile the whole project,

make build

To pack all classes into one JAR,

make jar

To delete all compiled classes and JAR,

make clean

To rebuild the whole project,

make rebuild

User Guide

Run the jar file in terminal:

java -jar group1.jar

The prompt EMS$ will be displayed if you successfully entered our system.

Our project is a command-driven system, with a user guide command help

EMS$ help
Cmd:
------------------------------------------Common_Commands------------------------------------------
	help: show the available command
	checkTime: show the time
	searchBranch <x-corodinate> <y-corodinate>: search the Branch by location
	help: show the available command
	exit: exit the system
------------------------------------------End_of_Common_cmd------------------------------------------

------------------------------------------Basic_UI_Commands------------------------------------------
	manager <id>: login as manager with id
	customer <id>: login as customer with id
------------------------------------------End_of_Common_cmd------------------------------------------

------------------------------------------Manager_Commands------------------------------------------
	addBranch <name> <x-corodinate> <y-corodinate>: add branch with name, and position
	addCustomer <name> <password> <priority> <x-corodinate> <y-corodinate>: add customer with infomation
	addLink <source_id> <target_id>: add directed linkage from source branch to target branch
	searchOrder <id>: trace where the order is
	rmBranch <id>: remove branch with id
	rmLink <source_id> <target_id>: remove directed linkage from source branch to target branch
	logout: logout to basic UI command
	[Command only for super maanger]:
		addManager <name> <password> <gender> <rank>: add new manager with the information
		rmManager <id>: remove manager with id
------------------------------------------End_of_Manager_cmd------------------------------------------

------------------------------------------Customer_Commands------------------------------------------
	createOrder <name> <target_id>: create a new order to send
	searchOrder <id>: trace where the order is
	logout: logout to basic UI command
------------------------------------------End_of_Customer_cmd------------------------------------------

a sample command rundown is provided below.

Sample Command Rundown

help
manager 0
addManager manager1 123456 female 1
addBranch branch1 1 2
searchBranch 1 2
addBranch branch2 15 15
addCustomer sender 654321 1 2 2
addCustomer receiver 567890 1 15 14
addLink 1 2
logout
customer 0
createOrder order 1
searchOrder 1
searchOrder order
logout
manager 0
rmManager 1
rmBranch 1
exit

Version Control System

Git

Person iteractions

  • Customer (who receives items)
  • Express company's managers
  • Courier (the person who deliver the packages)
  • Customer (who sends items)
  • Branch offices

Project Structure

├── ems
│   ├── Branch.java
│   ├── CmdAddBranch.java
│   ├── CmdAddCustomer.java
│   ├── CmdAddLinkage.java
│   ├── CmdAddManager.java
│   ├── CmdCheckTime.java
│   ├── CmdCreateOrder.java
│   ├── CmdRmBranch.java
│   ├── CmdRmLinkage.java
│   ├── CmdRmManager.java
│   ├── CmdSearchBranch.java
│   ├── CmdSearchOrder.java
│   ├── Command.java
│   ├── Company.java
│   ├── Customer.java
│   ├── Dijkstra.java
│   ├── Edge.java
│   ├── Graph.java
│   ├── Invoker.java
│   ├── Main.java
│   ├── Manager.java
│   ├── Order.java
│   ├── OrderPool.java
│   ├── Position.java
│   ├── Receiver.java
│   └── Sender.java
└── ems_test
           ├── BranchPosIntegrationTest.java
           ├── BranchTest.java
           ├── CompanyTest.java
           ├── CourierTest.java
           ├── CustomerCompanyTest.java
           ├── CustomerTest.java
           ├── EdgeIntegrationTest.java
           ├── EdgeTest.java
           ├── GraphTest.java
           ├── ManagerTest.java
           ├── OrderBranchPositionTest.java
           ├── OrderPoolOrderTest.java
           ├── OrderPoolTest.java
           ├── OrderTest.java
           ├── PositionTest.java
           ├── ReceiverTest.java
           ├── SenderTest.java
           └── TestBranch.java

Presentation structure

  • Objective
  • Planning
    • Team Organization
    • Development process
    • Project scheduling
  • Software
    • Functions
      • Demo
    • System design
      • Design patterns
      • Design principles
    • Code refactoring
    • Bug report
  • ※Testing
    • Hierarchy
    • Approach (Bottom-up)
    • Number of test cases
  • Configuration
    • Version control
    • Library / Environmment
  • Q&A

License

This project is licensed under the MIT License - see the LICENSE file for details