Fintech · Project 02
Complex lending. Clear workflows.
Emishopco organises loan processing and repayment operations into clear business workflows.

- Loan processing workflows.
- EMI scheduling and foreclosure automation.
- Payment integration.
- PDF generation, reporting and notifications.
Laravel · MySQL · Redis · Razorpay
Live preview loads when this card comes into view.
THE PROBLEM
Context
Loan and repayment operations need connected records, scheduled EMI activity, payment handling and reporting.
MY CONTRIBUTION
Engineering decisions
- Connected loan and EMI workflows to payment processing.
- Included PDF generation, reporting and notifications in the operational flow.
- The resume lists the platform as serving 100,000+ users; it does not assign that scale to an individual contribution.
SYSTEM FLOW
Conceptual architecture
Loan record → repayment schedule → payment event → report / notification
Illustrative workflow · Not a production screenshot
OUTCOMES
What changed
- Resume-listed project serves 100,000+ users.
- Automated EMI process reduced manual processing by 60% in the Megma IT LMS role; this metric is not attributed to Emishopco.
Public product link appears only when a product URL was verified. Source code is not linked unless a project-specific public repository is verified.
01 / A CLOSER LOOK
Make operational state understandable
Business software is useful when people can tell what needs attention. A lead, task, invoice or learning activity should have a state that means something to the people using it. Ownership, timestamps and linked records help explain who is responsible and why a record appears in a particular list.
Reports should follow those definitions so that a total has an understandable meaning. A dashboard number is less useful if users cannot tell which records it includes or how recent they are. Exports and bulk actions also need access rules and validation, because they can affect many records at once. The relevant case studies describe documented workflows; sample explanations on this page are not live customer data or a claim about current business activity.
02 / A CLOSER LOOK
Separate payment evidence from access changes
A browser returning from checkout is part of the user experience, but it should not be the only evidence that a payment completed. A payment workflow needs to associate the provider event with the correct internal record and verify the event through the integration’s trusted mechanism before changing access, an order or a subscription.
The application should distinguish pending, successful, failed and later adjustment states where those states apply. Repeated provider events must not create repeated business effects. The portfolio documents Razorpay integration and verified subscription workflows in the relevant experience and project pages. This section explains the design concern; it does not expose payment credentials, customer transactions or private production records.
03 / A CLOSER LOOK
Handle repeated events and partial failures
External services can send the same event more than once, and a request can fail after some work has completed. A safe event handler needs a way to recognise an event already applied and a clear definition of the operation that must happen together. This becomes especially important when a record change also triggers access, a notification or a scheduled task.
Useful review cases include a valid first delivery, a repeated delivery, an invalid event and a failure before the business action completes. The stored outcome should make it possible to understand what happened without recording secrets in logs. An integration is complete only when the expected event and its failure behaviour are understood; receiving a successful HTTP response from the provider does not prove the entire workflow worked.
04 / A CLOSER LOOK
Model the relationships before adding screens
A relational model should reflect the relationship between the records people work with. A client may have several projects, a project may contain tasks and an invoice may refer to a service or a customer. Explicit relationships help the application answer questions consistently and reduce the need to copy the same information into unrelated places.
The model also needs rules for change. What happens to linked history when a record is archived? Can two users create the same external reference? Which fields represent the current state and which preserve an event that already occurred? These decisions influence validation, reporting and deletion behaviour. A diagram is useful when it clarifies those questions; a list of tables alone does not explain the business process.
05 / A CLOSER LOOK
Identity, roles and record access
Authentication establishes who is making a request. Authorisation decides which actions and records that identity can access. A hidden button does not replace a server-side permission check: a protected operation must still check the user when a request reaches the application. Record ownership also matters when several teams or clients use the same system.
A role matrix can make the expected behaviour explicit. It should describe who may view, create, update, export or delete each kind of record, including exceptions such as an assigned owner or administrator. Session expiry and sign-out should have understandable outcomes. A review should include a permitted request and a denied request, so the boundary is demonstrated instead of inferred from the interface.
06 / A CLOSER LOOK
Review the complete journey
A screen can appear correct while the underlying workflow is incomplete. A useful review follows a record from its first creation through validation, persistence, reload, later edits and any linked action. It also checks what happens when a field is missing, an external service fails or a user attempts an action that their role does not permit.
The depth of testing should match the consequence of a mistake. An informational layout needs readable content and working navigation; a payment or permission change needs closer checks around state and access. Review notes should make the expected result visible, explain the conditions used and distinguish a verified outcome from a limitation that still needs attention. This is a review approach, not a claim that every historical project has identical test coverage.
07 / A CLOSER LOOK
Make the next step understandable
A useful delivery includes enough context for the next person to operate the result. That can mean a short explanation of a workflow, where configuration belongs, how a record is managed or which external service is responsible for a particular result. Documentation should describe the application as it is delivered, including anything that remains outside the agreed scope.
Ongoing work may include content changes, bug fixes, performance reviews or new requirements after real use. Those are easier to discuss when the original boundaries and known limitations are recorded. Source access, hosting responsibilities, credentials and support arrangements should be agreed directly for the engagement; the presence of a public project link does not imply permission to access its private administration area.
08 / A CLOSER LOOK
Read the evidence in context
A project description, a public website and a source repository each answer a different question. The description explains the problem and contribution; a website shows its current public experience; a repository exposes the code that has actually been published. A screenshot is a captured view, while a conceptual illustration explains an idea. Those distinctions remain visible throughout this portfolio.
Performance figures belong to the employer, product and time period where they were documented. A platform user count should not be read as a personal customer count, and a result from one application should not be transferred to another case study. When a detail is unavailable, a discussion can establish what can be demonstrated without exposing confidential accounts, customer records or credentials.