Full Stack / Security
Password Manager
A secure, straightforward password manager built on the MERN stack. Users store, organise and retrieve credentials for the sites they use, with each vault scoped to its owner.
Built as a learning project. No real credentials appear anywhere in the repository, the screenshots or this site.
What it is.
This project was about handling sensitive data responsibly rather than about the CRUD itself. Every design decision came back to one question: what does the server actually need to store, and what should never leave the client in plain form?
It gave me a practical reason to think about authentication, authorisation and data isolation instead of treating them as boilerplate.
02 — The problem
Reused passwords are the single most common personal security failure, and people reuse them because managing unique ones by hand is tedious.
03 — The approach
A single authenticated vault per user with fast search and clean organisation, built on a REST API that never returns another user's records regardless of the request.
What it actually does.
Per-user vault
Every record is keyed to its owner and authorisation is checked server-side on each request.
Full CRUD on entries
Add, edit, organise and delete stored site credentials.
Search and organisation
Entries are filterable so a large vault stays usable.
REST API
Express routes with validation, so the React client is one consumer rather than the source of truth.
How the pieces fit together.
React client
Vault UI, forms and search.
Express API
Authentication, validation and ownership checks on every route.
MongoDB
Per-user credential records.
The stack.
Chosen for the problem, not for the resume.
- ReactJavaScript
- Node.jsExpress.jsREST APIs
- MongoDB
The part that stuck.
Student portfolio, so this section is the point — here is what this build actually taught me.
Authorisation has to be enforced on the server for every single route. Hiding a button in the UI is not access control — that lesson landed here.
Handling sensitive data made me read properly about hashing and storage rather than copying an auth snippet and moving on.
The MERN stack end-to-end showed me how much of 'full stack' is really about keeping one clear contract between the two halves.
Real-Time Currency Converter
A responsive converter running on live exchange-rate data, built with plain HTML, CSS and JavaScript.
Have a project idea?
I'm open to freelance projects, collaborations, internships, and opportunities where I can contribute while continuing to grow.
Usually replies within a day · Lahore, Pakistan · PKT (UTC+5)