Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Contact List Manager

This is my submission for the Software Engineer Take-Home Assessment. The app is a simple contact list manager built with a Node.js/Express backend and a React (Vite) frontend.

How to Run the App

Backend

  1. Open a terminal and go to the backend folder:
    cd backend
  2. Install dependencies:
    npm install
  3. Start the backend server:
    npm start
    The backend will run on http://localhost:4000

Frontend

  1. Open a new terminal and go to the frontend folder:
    cd frontend
  2. Install dependencies:
    npm install
  3. Start the frontend app:
    npm run dev
    The frontend will run on http://localhost:5173

Features

  • Add a contact with name and email
  • View all contacts
  • Search contacts by name or email (case-insensitive)
  • Prevents adding duplicate emails
  • Handles empty fields with error messages

Design Decisions & Trade-offs

  • I used in-memory storage for the backend to keep things simple and easy to run locally. This means contacts are lost if the backend restarts.
  • The search is done on the backend for efficiency, but the UI updates as you type.
  • I focused on clean, readable code and clear error handling.

Edge Cases Handled

  • Duplicate emails are not allowed (shows an error)
  • Both name and email are required (shows an error)
  • Search works for both name and email, and is case-insensitive

Improvements I Would Make

  • Add the ability to delete contacts
  • Use a database for persistent storage
  • Add automated tests for backend and frontend
  • Improve the UI/UX with better styling and feedback

About

contact-list-manager

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages