Mirabito RLM Pt.2 - Eniz Ozden; Korkut Balta; Muhammad Selim Albayrak;
From CS486wiki
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.