Messenger

Messenger app created with Next.js App router, server actions and more...
Messenger

Used technologies:

Vercelfile_type_light_prismaPrisma ORMNext.js iconNext.js JavaScript TypeScript Reactfile_type_tailwindTailwind CSS HTML CSS Node.js Drizzle ORMPostgre SQL

Features

  • Register by email and password or using provider (Google, Github)

  • Private chats or group chats in real time (using pusher)

  • Editing your account informations (name, avatar)

  • User online status

  • Sending images (using cloudinary and next-cloudinary library)

Planned features

  • Managing users in group - kick, add

  • Adding roles in group chats (moderator, administrator)

  • Add preview to shared links

  • Connecting providers to created account or adding password to accounts created by provider

  • Password Reset

  • E-mail verify

How to reproduce project

1. Clone repository using git

git clone https://github.com/c3sare/messenger

2. Install dependencies

bun install

3. Add env variables

DATABASE_URL=
AUTH_SECRET=
AUTH_GOOGLE_ID=
AUTH_GOOGLE_SECRET=
AUTH_GITHUB_ID=
AUTH_GITHUB_SECRET=
PUSHER_APP_ID=
PUSHER_APP_SECRET=
NEXT_PUBLIC_PUSHER_APP_CLUSTER=
NEXT_PUBLIC_PUSHER_APP_KEY=
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=

DATABASE_URL is a url to your postgres neon database

AUTH_SECRET is a key to encode and decode your JWT AUTH TOKEN, generate it with openssl rand -base64 33

AUTH_GOOGLE_ID and AUTH_GOOGLE_SECRET, its important to sign in with Google account, you can generate keys using google cloud console, TUTORIAL

AUTH_GITHUB_ID and AUTH_GITHUB_SECRET, its important to sign in with GitHub account, you can generate keys using your github account, TUTORIAL

PUSHER_APP_ID, PUSHER_APP_SECRET, NEXT_PUBLIC_PUSHER_APP_CLUSTER and NEXT_PUBLIC_PUSHER_APP_KEY, you can create by create a new project on this site

NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME, its a cloud name of created image/video hosting in cloudinary

Get In Touch

Currently Available
I'm currently open to new opportunities and collaborations. Feel free to reach out if you'd like to discuss a project or just say hello!
Send a message
Have a project in mind or just want to chat? Fill out the form below and I'll get back to you within 24 hours.