This week I’m working on an app that helps keep track of problems between business records.
A company may use several systems to manage things like bills, payments, credits, and orders. Sometimes the information in those systems does not match. A payment may be hard to identify. A credit may be missing. A bill may still need approval. An issue from last week may still be open.
The app keeps track of those problems until someone figures out what happened and resolves them.
One part of the process is sending a report to the client.
Before that report goes out, someone needs to review it. They may ask for changes before approving it. I’ve been moving that process into the app so there is a clear record of what happened.
If someone reviews a draft and asks for changes, the app keeps the old draft and creates a new one. That way, nothing gets overwritten. When a version is finally approved, the app keeps a record of exactly what was approved.
This week I’m working on what happens after that approval.
The app can already send the approved message through an email service. Now I want the app to know what happened after it sent the message.
There is a difference between giving an email to the email service and knowing that the receiving email server accepted it. The app should only say DELIVERED when it has proof that happened. Until then, it should say SUBMITTED.
I’m also making sure the same approved message cannot be sent twice by mistake. Someone might click the send button twice, refresh the page, or try again because the first request seemed slow. The app should recognize that the message was already sent and stop a second copy from going out.
My goal for this week is to finish that full path: prepare the message, review it, approve it, send it, confirm delivery, and keep a record of each step.
Once that is working well, I can move on to the next parts of the app. Those include improving the report itself and bringing client replies back into the same system.
For now, I want to get this one path working from start to finish.