University Project / Authentication Fundamentals

MERN Authentication

A classroom MERN application built to follow registration and login data across a React client, Express API, and MongoDB-backed user records.

ProjectUniversity coursework
FocusRegistration and login flow
DataMongoDB and Mongoose
StackReact, Express, MongoDB, JWT, CryptoJS
Animated preview of the MERN authentication class project
Original MERN authentication project preview.

This class project was an exercise in understanding the full authentication path rather than treating login as a single form. I built registration and login states, connected the React interface to an Express API, and stored user records with MongoDB and Mongoose.

The work introduced the responsibilities on each side of the boundary: collecting credentials in the client, validating requests in the API, handling application keys and tokens, and deciding what belongs in persistent data. The repository remains a learning artifact from that stage, not a current production-authentication reference.

01 / Request Flow

Follow authentication across the whole stack.

The main value of the assignment was seeing how one user action moves through several layers before the interface can show an authenticated state.

React client

Registration, login, and role-selection interfaces collect user input and respond to success or failure from the API.

Express API

Server routes receive the request and coordinate the application logic instead of exposing database access to the browser.

MongoDB records

Mongoose provides the model layer used to write and retrieve the stored user information needed by the flow.

02 / Security Concepts

Understand where trust changes hands.

The exercise connected database work to the security decisions that sit between a submitted password and an authenticated application state.

Credential handling

Passwords cannot be treated like ordinary profile fields; the project made their storage and transformation part of the server-side design.

Keys and tokens

JWT and CryptoJS introduced how application secrets and token-based identity fit into requests after login.

Protected boundaries

The browser, API, and database each have different responsibilities, and sensitive logic belongs behind the client interface.

03 / Reflection

Authentication is a system, not a screen.

The class project gave me a concrete foundation for thinking about accounts even as production practices and libraries continue to evolve.

Trace the complete path

Debugging requires following the request from form state through API handling and into the stored record, then back again.

Separate responsibilities

A clearer boundary between interface, server logic, and persistence makes each part easier to reason about and change.

Keep security current

The concepts remain useful, while real production authentication should be evaluated against current standards and maintained libraries.