Mirabito RLM - Enis Ozden; Korkut Balta; Muhammad Selim Albayrak;

From CS486wiki
Revision as of 17:14, 2 December 2024 by Seniorproject (talk | contribs)
(change visibility) (diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Week 1 09/17/2024


Accomplishments:
Spent time understanding the codebase:

 * Went through the files `interface.php` and `ipconnect.php` to get familiar with their structure.
 * Summarized the overall purpose of each file.
 * Highlighted the main functions and what they are designed to do.

Identified critical elements:

 * Located the functions responsible for parsing data.
 * Identified key variables that store the parsed data.
 * Reviewed constants and predefined values used to handle different message types or fields.

Added inline documentation:

 * Wrote clear comments to explain the parts of the code we fully understood.

To-Do:

 * Continue exploring how these components interact to gain a deeper understanding of the entire system.

Week 2 09/25/2024


Accomplishments:


Worked on writing the C# codebase:

Key files writen:

*LoyaltyMessage.cs: Detailed the data models and XML serialization attributes.
*FrontendApp.cs: The client application creates and sends LoyaltyMessage objects.
*BackendApp.cs: The server application processes incoming XML data and sends it back to the sender.

Explained functionality:

*Highlighted the purpose and interaction of each class and method.
*Illustrated the flow of data between the client and server.

Enhanced understanding:

*Gained insights into XML serialization/deserialization and TCP networking.
*Reviewed asynchronous programming patterns used in the applications.

To-Do:

Refine the documentation for clarity and brevity. Add inline comments to the code for better readability. Explore implementing error handling and input validation.

Week 3 10/10/2024


Accomplishments:


Key updates made to the code:

*Client.cs: Added detailed comments to clarify the code structure. Enhanced the error-handling mechanism and improved the readability of the code.
*Backend.cs: Included descriptive comments for better understanding. Implemented an improved error-handling system and refined the code for increased readability. Additionally, a buffer pool mechanism and audit trails were integrated into the system.
*LoyaltyMessage.cs: Added comprehensive comments to explain the code. The code was also refactored to improve clarity and readability.


Additionally, further functionality was discussed, and a priority list for upcoming tasks has been established.

Week 4 10/15/2024


Accomplishments:


Log files : Analyzed a new log file to better understand the RLM communication protocol. Discovered that the protocol creates the CFPERID before updating the status to "APPROVED."

Software Update : Attempted to implement the same method in the code, aligning it with the protocol's behavior to generate CFPERID before updating the "APPROVED" status.


Week 5 10/23/2024


Accomplishments:


Log files : Conducted an analysis of the RLM protocol communication within a PHP file, gaining a comprehensive understanding of the message parsing process.


Software Update : Developed and implemented methods to efficiently manage operations such as authorization, status verification, and capture handling.

Week 6 10/30/2024


Accomplishments:

    • Connection Management and Message Flow:

- Set up listening sockets for terminal connections (Code lines: 156, 331). - Improved message reading and forwarding from terminals to CPE (Code lines: 217, 237). - Analyzed CPE queue management for efficient message transmission (Code lines: 257, 586, 197).

    • Status Message Handling in Interface:

- Enhanced understanding of 'status' message processing (msgID 69), including reading, validation, and response construction (Code lines: 275, 1566, 340). - Reviewed `validateLocationCode()` for location accuracy and stability. - Examined `statusResponse()` for building and sending status responses (Code lines: 381, 666).

    • msgID Review and System Logic:

- Reviewed msgID values to clarify roles in system flow, routing, and processing logic.

    • Flow Diagram and Documentation:

- Developed a simplified flow diagram for `ipconnect.php`, `interface.php`, and PromoEngine interactions. - Enhanced inline documentation for better code readability.

    • To-Do:

- Continue exploring msgID handling. - Implement error handling and logging. - Test updated message functions for response accuracy.

Week 7 11/06/2024


Accomplishments:


Improved message handling efficiency:

 * Enhanced asynchronous processing for outbound messages to streamline transmission.

Expanded error handling and logging:

 * Added additional logging for better monitoring and troubleshooting.

Enhanced understanding of buffer management:

 * Analyzed `OutBufferAppend()`, confirming its role in adding prefixes to messages and managing outbound data.

Updated code documentation and functionality:

 * Added inline comments in key functions like `tellCPE()` for improved readability.
 * Updated `SerializeLoyaltyMessage` and `handleStatusRequest` functions for better performance.

Week 8 11/20/2024


Accomplishments:


  • Successfully worked on the Point-of-Sale (POS) machine in the lab to test our backend integration.
  • Fine-tuned the code, resolving errors and fixing bugs to improve system performance.
  • Achieved communication between the POS machine and the backend, ensuring accurate message transmission.
  • Implemented and verified the status change request to "APPROVED" from the POS system.