VerifyMe Application

Overview

This project is a full-stack application designed to manage user sign-up, login, and password reset processes with email OTP verification. The application includes error handling, secure password hashing, and a responsive UI as per the provided Figma design.

Tech Stack

Frontend

  • Typescript
  • React
  • Tailwind CSS
  • Shadcn
  • React Hook Form
  • React Router

Backend

  • Typescript
  • Node.js
  • Express.js
  • MongoDB
  • JWT (JSON Web Tokens)
  • Nodemailer
  • OTPLib

Features

  1. Signup Flow with Email OTP Verification
  2. Error Handling
  3. Welcome Page After Signup
  4. Login Flow with Password Verification
  5. UI Design as per Figma
  6. Password Hashing and Security
  7. Password Reset Option

Project Structure

Setup and Local Run Instructions

Prerequisites

  • Node.js (v14 or higher)
  • MongoDB (local instance or MongoDB Atlas)
  • Git

Frontend Setup

  1. Clone the Repository

    git clone https://github.com/PranitPatil03/VerifyMe-client.git
    cd VerifyMe-client
  2. Install Dependencies

    npm install
  3. Run the Application

    npm run dev

    The frontend will be available at http://localhost:5173.

Backend Setup

  1. Clone the Repository

    git clone https://github.com/PranitPatil03/VerifyMe-server.git
    cd VerifyMe-server
  2. Install Dependencies

    npm install
  3. Environment Variables

    Create a .env file in the root directory with the following content:

    PORT=3000
    MONGO_URI=your_mongo_connection_string
    JWT_SECRET=your_jwt_secret
    EMAIL_USER=your-email@example.com
    EMAIL_PASS=your-email-password
  4. Run the Application

    npm start

    The backend will be available at http://localhost:3000.

Deployment

Both the frontend and backend have been deployed to the cloud and can be accessed via the following URLs:

Contact

For any queries, feel free to reach out:

Thank you for the opportunity to work on this assignment!