Skip to content

zeptodan/pinpal

Repository files navigation

PinPal

PinPal is a full-stack geolocation-based journaling application that allows users to create private map-based entries or "pins" along with a short description attached with each pin, visualize them on an interactive map, and send pins to friends through real-time chat.

Features

Authentication

  • Secure user authentication using Supabase Auth
  • Session management with protected routes

Geolocation Journaling

  • Create private journal entries tied to latitude and longitude coordinates
  • View entries on an interactive map interface
  • Store text and optional image data for each pin

Interactive Map

  • Integrated Leaflet for rendering dynamic maps
  • Place, view, and manage pins directly on the map
  • Smooth UI for navigation and interaction

Real-time Chat

  • Real-time messaging using Supabase Realtime
  • Send and receive messages instantly
  • Share geolocation pins directly in conversations

Friend System

  • Search users by username
  • Send, receive, and accept friend requests
  • Maintain a list of connected users

Media Uploads

  • Upload images for journal entries and user avatars
  • Managed using Supabase Storage
  • Secured with Row Level Security (RLS)

Security

  • RLS policies to ensure data privacy
  • Users can only access their own journal entries and relevant chat data

Tech Stack

Frontend / Backend

  • Next.js (App Router)
  • React
  • TailwindCSS
  • Leaflet

Database

  • Supabase

    • PostgreSQL
    • Authentication
    • Realtime
    • Storage

Getting Started

  1. Clone the repository git clone https://github.com/zeptodan/pinpal.git cd pinpal

  2. Install dependencies npm install

  3. Set up environment variables Create a .env.local file and add: NEXT_PUBLIC_SUPABASE_URL=your_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_key

  4. Run the development server npm run dev

Future Improvements

  • Group chats with shared map pins
  • Public or shared maps
  • Notifications for friend requests and messages
  • Map clustering for dense pin areas

License

This project is open-source and available under the MIT License.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages