PORTFOLIO / GROW WITH RAJUgrowwith raju
Resume ↓
GROW WITH RAJU

Explore.

Download resume ↓rajukumar.191813@gmail.com ↗

FOR RECRUITERS & TEAMS

Let’s build
your next chapter.

Have a role or project in mind? Tell me about your team and the opportunity.

Your details are stored privately so Raju can respond. This submits an enquiry; it does not book or confirm an engagement.

EdTech · Project 04

A place to learn and progress.

Growithraju supports learning and career progress through courses, internships and online assessments.

Laptop with a code editor during a development session
Illustrative workspace photograph · Chirayu Trivedi / Unsplash · not a project screenshot
  • Course management.
  • Internship features.
  • Online assessments and secure APIs.
  • Redis caching and payment features.

Laravel · MySQL · Redis · Razorpay

Visit growithraju.in ↗
DEMO UNAVAILABLEWEBSITE PREVIEW

The supplied website currently returns 404. Open the website to check its current status.

EdTech · Project 04Role: Developer contribution to an EdTech product; the supplied resume lists the product and stack but does not specify individual ownership.Laravel · MySQL · Redis · Razorpay

THE PROBLEM

Context

Learning products need course access, internships, assessments and a secure path through learner activity.

MY CONTRIBUTION

Engineering decisions

  • Structured course and internship workflows.
  • Used secure APIs and Redis caching as listed in the resume.
  • Connected payment features to the learning journey.

SYSTEM FLOW

Conceptual architecture

Learner → course / internship → assessment → progress and payment

Illustrative workflow · Not a production screenshot

OUTCOMES

What changed

  • The supplied resume lists the product features and stack but gives no isolated numerical outcome for this project.

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

Learning tools connect activity and progress

A learning platform needs to connect content to the person using it. Courses, lessons, assessments and progress records represent different parts of that journey. A clear model defines what counts as completion, what happens on a repeat visit and how access relates to enrolment or a subscription where those features are present.

Feedback should help a learner understand the next step rather than simply display a percentage. For an interview-practice or voice feature, the distinction between starting a session, receiving a response and recording an outcome should remain clear. The SpeakMint and Growithraju pages list their documented features separately. This explanation does not imply that a feature from one learning product exists in every other education-related project.

02 / 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.

03 / 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.

04 / A CLOSER LOOK

Caching needs a rule for freshness

A cache can reduce repeated work when the application can safely reuse a result. In a cache-aside approach, the application checks for a stored result, reads the underlying data on a miss and stores a reusable value. The difficult part is deciding when that value becomes stale and which users are allowed to share it.

Cache keys should reflect the context that changes the answer, such as a tenant, user, filter or version of the data. An update needs an expiry or invalidation strategy so that a faster response does not display the wrong information. Redis appears in the documented toolkit, but caching should be selected around measured behaviour and freshness requirements. It is not a substitute for understanding an inefficient query or a missing access check.

05 / 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.

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

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.

08 / A CLOSER LOOK

Understand the current public availability

An external URL can change after it is added to a portfolio. A missing page, a sign-in wall or an embedding restriction is information about the current public view, not proof of an application’s original feature set. A project page should keep its identity while explaining what can and cannot presently be inspected.

The supplied GitHub Pages root currently shows a site-not-found response, so its original title, content and features cannot be verified from that URL. It remains listed as requested, with that limitation visible. The Growithraju external website has also returned an unavailable response during review. A working replacement URL or authorised source would allow those descriptions to be checked; a concept image is never presented as proof that an unavailable product is currently operating.

← Back to full portfolio