Skip to content

3antozz/dropzone

Repository files navigation

DropZone

A modern web app to track, organize, and remember every location where you drop packages or items.

Interface

Landing page

Landing page

2FA Setup

2FA Setup

Dropoff Creation

Dropoff Creation

Note

App is hosted with free tier services, first load might take some time.

Why build this project ?

DropZone was created as a full-stack practice project to explore real-world implementations of Two-Factor Authentication (2FA) and Google Maps API integration.

Features

  • Secure Credentials login with NextAuth & optional Two-Factor Authentication (2FA).
  • Google Maps API integration to visualize all your dropoffs on an interactive map.
  • Location search autocomplete, current location with Geolocation API, Marker clustering for better visualization.
  • Search, edit, and manage your dropoff entries.

Technologies Used

Frontend

  • Nextjs
  • TailwindCSS
  • Google maps API

Backend

  • PostgreSQL
  • Prisma ORM
  • NextAuth
  • Zod
  • Vercel
  • Neon

🛠️ How to Run the Project Locally

Prerequisites

  • Node.js
  • npm
  • PostgreSQL (ensure your database is running)
  • Basic knowledge of using a terminal (steps are beginner-friendly)

1. Clone the Repository

git https://github.com/3antozz/dropzone
cd dropzone

2. Setup the server

cd api
npm install

1- Create a .env file in the node/ directory (based on .env.example) and fill in the required environment variables such as:

Note

This app uses google map javascript API, if you want to test this feature locally you should acquire your own google maps API key.

  • Database connection URL
  • Google maps KEY & map ID
  • Auth secret

2- Start the server:

npm start

Note

The server will run on http://localhost:3000 by default.

3. Open in Browser

1- Once the server is running:

2- Visit http://localhost:3000 in your browser

Libraries Used

Frontend

  • tailwindcss – A utility-first CSS framework.
  • @vis.gl/react-google-maps – A TypeScript library to integrate the Maps JavaScript API into a React application.
  • @googlemaps/markerclusterer – The library creates and manages per-zoom-level clusters for large amounts of markers.
  • use-debounce – Debounce functions - used in search query.
  • clsx – utility for constructing className strings conditionally.

Backend

  • next-auth – Authentication for Next.js.
  • otplib – Time-based (TOTP) and HMAC-based (HOTP) One-Time Password library.
  • qrcode – QR Code generator.
  • bcryptjs – For securing passwords by hashing and salting.
  • prisma/client – ORM - Auto-generated and type-safe query builder for Node.js.
  • zod – TypeScript-first schema validation with static type inference

About

A modern Nextjs web app to track, organize, and remember every location where you drop packages or items.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors