Skip to content

trishanduong/petpal

Repository files navigation

PetPals 🐾

Next.js CockroachDb JavaScript TypeScript Prisma Tailwind CSS

PetPals is a unique app designed for dog owners who want to set playdates with other dog enthusiasts in their area. This app allows users to connect, share information about their dogs, and schedule meetings in dog-friendly locations. Whether you're looking for a play partner for your dog or a social opportunity for yourself, PetPals makes it easy and fun!

Key Features:

  • Landing Page, About Me page
  • CockroachDB PostgreSQL database
  • Real-time messaging using Pusher
  • Google & Discord authentication integration with NextAuth
  • Client form validation and handling using react-hook-form
  • Matching with other profiles based, creating match conversations
  • Delete Conversation Functionality (unmatch)
  • User profile customization and settings
  • Full responsiveness with Tailwind
  • Tailwind animations and transition effects
  • File and image upload using UploadThing & Cloudinary CDN

Tech

This is a T3 Stack project bootstrapped with create-t3-app.

Roadmap

  • Swiping Functionality
  • Chatroom functionality
  • Credential authentication with NextAuth. (In-progress, Need to connect account creation with Prisma Account Model ) Migrated to passwordless authentication
  • Notifications (Need to update Prisma model)
  • Chatroom Mobile Responsiveness
  • Migrate UploadThing functionality to Cloudinary CDN
  • Testing
  • Extending Pusher functionality for 'real time' updates
    • Online/offline user status
    • Message read/seen receipts (In-progress, currently encountering Pusher errors)
  • Group chat functionality

Prerequisites

Node version 14.x

Cloning the repository

git clone https://github.com/AntonioErdeljac/next13-messenger.git

Install packages

npm i

Setup .env file

DATABASE_URL=

NEXTAUTH_SECRET=
NEXTAUTH_URL=

# Next Auth Discord Provider
DISCORD_CLIENT_ID=
DISCORD_CLIENT_SECRET=

GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

UPLOADTHING_SECRET=
UPLOADTHING_APP_ID=

NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=

NEXT_PUBLIC_PUSHER_APP_KEY=
PUSHER_APP_ID=
PUSHER_SECRET=

Setup Prisma

npx prisma db push

Start the app

npm run dev