This project is completed in different phases following the principles of Extreme Programming (XP) and Incremental Development (IDP).
It is a command line program. There are 4 types of users: admin, buyer, seller, full standard
The program is implemented based on 2 logics:
The command that users can perform are: 1) Login 2) Create 3) Delete 4) Buy 5) Sell 6) Add Credit 7) Refund 8) Logout
Admin can perform all commands.
Buyer can perform Login, Buy, Add Credit, Logout.
Seller can perform Login, Sell, Add Credit, Refund, Logout.
Full Standard can perform Login, Buy, Sell, Add Credit, Refund, Logout.
admin_create_delete_demo.mp4
buyer_demo.mp4
seller_demo.mp4
Full.Standard.Demo.mp4
- Back end
Each transaction is registered on the temporary Daily Transaction File.
The format of the Daily Transaction File is:
Code of transaction_user_user type_amount of credit
Code of transaction:
01 = Create Code
02 = Delete Code
03 = Buy Code
04 = Sell Code
05 = Refund Code
06 = Add Credit Code
00 = End of Session Code
At the end of each day, all the transactions from temporary daily transaction file + users.tex + tickets.txt are used to generate a new file named Merged Daily Transaction File.
Whenever an error is generated it is saved on a file named error.txt.

- A design document, giving the overall structure of the solution, showing the classes and methods as a table, with a brief description of the intention of each one.
- The first version of the source code to implement the design. This version ran some inputs but it's not completely tested.
Test cases designed for black box testing. Black box testing focuses on the functionality of the software without considering its internal structure.
The test cases are organized in 2 directories: 1) input_tests; 2) expected_output_tests
To perform these sets of tests a python script (run_test.py) and a jar file of the java program (please.jar) is used.
Run this command on terminal to start testing: python3 run_test.py please.jar input_tests expected_output_tests
run_test.py_Demo.mp4
A list of all detailed tests is provided in phase 2.
A complete version of the program including the back end as well. A complete class diagram is accomplished in this phase.
White box testing. White box testing focuses on the internal logic, code, and structure of the software. Treats the software as a "white box" with full visibility into its internal workings.
CentralCore and User classes are tested with JUnit.
White.Box.Testing.Demo.mp4
A detailed table of results is provided in this phase.

