Mirabito RLM Pt.2 - Eniz Ozden; Korkut Balta; Muhammad Selim Albayrak;

From CS486wiki
Jump to navigationJump to search

Week 1: 02/14/2025

Accomplishments:

  • Gave a presentation to project managers detailing our current status and outlining what needs to be done for the work ahead.

To-Do:

  • Define the project scope.
  • Work on Capture and Auth requests.

Week 2: 02/19/2025

Objectives and Tasks:

  • Development Environment Configuration:
 - Set up the C#/.NET environment.  
 - Configure the TCP server and integrate XML parsing tools.
  • Resource Access:
 - Access Mirabito Lab resources.  
 - Retrieve relevant log files, if available.
  • TCP Listener Development:
 - Develop an initial TCP listener capable of accepting and storing XML messages from POS devices.
  • Connectivity Testing:
 - Conduct basic connectivity tests using simulated POS requests.
  • Logging Mechanism Implementation:
 - Establish a comprehensive logging system to capture all incoming messages for further analysis.

Week 3: 02/26/2025

Objectives and Tasks:

  • Message Processing:
 - Develop XML parsing logic to extract key elements from AUTH and CAPTURE messages.  
 - Implement handlers for AUTH and CAPTURE messages.
 - Implement Forwarding mechanism to capture correct response form the production server
  • Response Handling:
 - Develop a response generator to construct appropriate XML responses.
  • System Validation:
 - Conduct tests with sample message flows to verify server functionality to achieve correct response 
  • Expected Outcomes:
 - A working system capable of processing AUTH and CAPTURE requests and generating appropriate responses.
  • Deliverables:
 - Functional XML parser and message handlers
 - Implementation of response generation logic.

Week 4: 03/05/2025

Objectives and Tasks:

  • Frontend Development:
- Implement SendStatusRequest, SendAuthRequest, and SendCaptureRequest to send valid STATUS → AUTH → CAPTURE requests.
- Develop ProcessStatusResponse, ProcessAuthResponse, and ProcessCaptureResponse to parse and validate incoming responses.
- Modularize message sending with AddLengthPrefix, and unify receiving logic with ReceiveMessage.
  • Sequence Handling:
- Enforce correct message sequence: STATUS → AUTH → CAPTURE.
- Store AUTH response (e.g., CPERID, RewardID) for CAPTURE request construction.
  • Testing:
- Verify client logic by observing communication using Wireshark.
- Confirm prefix length format and proper server response to each message.
  • Expected Outcomes:
- A complete client capable of sending and interpreting STATUS, AUTH, and CAPTURE messages correctly.
  • Deliverables:
- Final version of FrontendClient.cs with modular, tested methods.

Week 5: 03/19/2025

Objectives and Tasks:

  • Backend Development:
- Implement TCP server logic to accept client messages with 4-byte length prefixes.
- Route incoming messages based on their operation type (STATUS, AUTH, CAPTURE).
  • Implement business logic for each handler:
- STATUS → return APPROVED
- AUTH → generate CPERID, apply rewards
- CAPTURE → verify CPERID and return confirmation
  • Response Generation:
- Serialize XML responses without unnecessary namespaces.
- Use SendWithLengthPrefix to send consistent responses to the frontend.
  • Testing:
- Validate integration with frontend client.
- Confirm loyalty flow completion by simulating end-to-end transaction.
  • Expected Outcomes:
- Backend system capable of handling complete STATUS → AUTH → CAPTURE flow with accurate responses.
  • Deliverables:
- Final version of BackendApp.cs
- Captured examples of each response type sent from backend

Week 6: 03/26/2025

Objectives and Tasks:

  • Codebase Restructuring:
- Reorganized the project directory to separate backend, frontend, and environment-related files.
- Created a structured layout under Mirabito-RLM/Environment for deployment-ready development.
  • Transition to Realistic Environment:
- Moved backend and frontend components from testing mode to a server-oriented setup.
- Verified that frontend and backend can communicate within this new structure.
  • Foundation for Dynamic Communication:
- Prepared Conexus API integration for dynamic STATUS and AUTH message processing.
- Set up configuration files and placeholders for real-time API calls.

Expected Outcomes:

- Project folder ready for production-like development and testing.
- Backend and frontend properly organized and ready for dynamic message logic.

Deliverables:

- Updated file structure with clear separation of concerns.
- Environment folder containing new configuration setup.
- Working local server setup using the restructured project layout.

Week 7: 04/02/2025

Objectives and Tasks:

  • Dynamic STATUS Check:
- Implemented real-time API call to Conexus to check system availability.
- Server sends APPROVED response if Conexus confirms it is online.
  • Dynamic AUTH Call:
- On AUTH requests, backend now calls the Conexus API with the loyalty ID.
- Successfully retrieves discount and loyalty data dynamically.
  • Response Generation Logic:
- Began constructing dynamic AUTH response by mapping Conexus response fields to XML fields (e.g., rewards, CPERID).

Planned Tasks:

- Complete dynamic AUTH response logic.
- Begin dynamic CAPTURE request handling and response generation based on Conexus feedback.

Expected Outcomes:

- STATUS and AUTH messages handled with real-time logic, replacing static responses.
- System behavior aligned with actual production APIs and flows.

Deliverables:

- Working STATUS and AUTH logic connected to Conexus.
- Updated backend code reflecting dynamic response generation.

Week 8: 04/09/2025