Skip to content

kecioch/dialog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 

Repository files navigation

DIALOG 💬

CHAT FROM EVERYWHERE.

DIALOG is a modern, full-stack chat web application built with React, TypeScript, Express, and PostgreSQL. It delivers seamless real-time messaging and live notifications powered by Socket.io, ensuring instant, event-driven communication across clients.

Authentication is implemented with a strong focus on both security and user experience. The application supports traditional email/password login, Google OAuth integration, and passwordless authentication via passkeys (WebAuthn). This multi-strategy approach demonstrates secure session handling, modern identity flows, and industry-aligned best practices.

The backend exposes a structured REST API and leverages Prisma ORM for type-safe, maintainable database access.

Designed not just as a demo, but as a practical showcase of modern web application architecture.

Live Demo

You can see the application in action by checking out the live demo.

Screenshots

Features

Chat

  • Real-time messaging (WebSockets)
  • Private conversations
  • Notifications & user online status
  • Darkmode / Lightmode

Authentication

  • Email & password login
  • Google OAuth
  • Passkeys (WebAuthn)
  • JWT-based sessions

Backend

  • REST API (Express)
  • PostgreSQL database
  • Secure authentication & validation

Requirements

  • Node.js (v18+)
  • PostgreSQL
  • Google OAuth credentials
  • npm or yarn

Setup

Follow these steps to run the project locally.
Make sure to create a .env file in both frontend and backend based on their respective .env.sample files.

# 1. Clone repository
git clone https://github.com/kecioch/dialog

# 2. Navigate into project
cd dialog

# 3. Install backend dependencies
cd backend
npm install

# 4. Configure backend environment variables
# Rename .env.sample to .env and fill in required values

# 5. Initializing database schema
npx prisma migrate dev --name init

# 6. Generate Prisma-Client
npx prisma generate

# 7. Start backend (dev mode)
npm run dev

Open a second terminal:

# 8. Navigate to frontend
cd frontend

# 9. Install frontend dependencies
npm install

# 10. Configure frontend environment variables
# Rename .env.sample to .env and fill in required values

# 11. Start frontend
npm run start

Technologies

Credits & Licenses

About

A full-stack chat web application with real-time notifications via WebSockets and authentication implemented using standard email/password login, Google OAuth, and passkeys

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors