No description
  • TypeScript 54.7%
  • HTML 43.3%
  • CSS 1.4%
  • JavaScript 0.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Ralph Schaer 79ba25d070 upgrade
2026-10-04 10:04:35 +02:00
docs Harden chat state and complete demo workflows 2026-09-04 19:42:35 +02:00
public Initial commit 2026-04-19 08:45:11 +02:00
src Harden chat state and complete demo workflows 2026-09-04 19:42:35 +02:00
.editorconfig Initial commit 2026-04-19 08:45:11 +02:00
.gitignore Cleanup 2026-05-30 18:06:59 +02:00
.postcssrc.json Initial commit 2026-04-19 08:45:11 +02:00
.prettierignore Harden chat state and complete demo workflows 2026-09-04 19:42:35 +02:00
.prettierrc Initial commit 2026-04-19 08:45:11 +02:00
angular.json Harden chat state and complete demo workflows 2026-09-04 19:42:35 +02:00
eslint.config.js Initial commit 2026-04-19 08:45:11 +02:00
LICENSE Cleanup 2026-05-30 18:06:59 +02:00
package.json upgrade 2026-10-04 10:04:35 +02:00
README.md Harden chat state and complete demo workflows 2026-09-04 19:42:35 +02:00
tsconfig.app.json upgrade 2026-06-27 18:11:48 +02:00
tsconfig.json Harden chat state and complete demo workflows 2026-09-04 19:42:35 +02:00
tsconfig.spec.json Harden chat state and complete demo workflows 2026-09-04 19:42:35 +02:00

BaseChat

BaseChat is the frontend foundation for a real-time chat application. It provides an Angular UI for authentication, contact management, and direct messaging, ready to be paired with a compatible backend.

The repository currently runs in demo mode: users, sessions, contacts, conversations, and messages are stored in browser localStorage. Passkey ceremonies, presence, delivery, and password recovery are simulated. No credentials or message data leave the browser.

Tech Stack

Layer Technology
Framework Angular 22
Styling Tailwind CSS 4 + daisyUI 5
Language TypeScript 6.0
Package Manager pnpm
Linting ESLint + angular-eslint
Formatting Prettier

Features

  • Authentication: sign in, sign up, forgot/reset password, simulated passkey flows
  • Contacts: contact list, add, remove, block, unblock
  • Direct Messaging: conversation list, message history, send/delete messages, unread badges
  • Profile: view and update profile, change password, passkey management, account deletion
  • Real-time contract: documented event and channel conventions for a future Centrifugo client
  • Theming: light/dark mode toggle with daisyUI themes

Getting Started

# Install dependencies
pnpm install

# Start the development server
pnpm start

# Build for production
pnpm build

# Lint
pnpm lint

# Run unit tests
pnpm test

# Format
pnpm format

The dev server runs at http://localhost:4200.

Use me / password123 to explore the seeded demo. Other seeded usernames are listed in MockDataService; their short passwords exist only for demo sign-in compatibility.

Backend Contract

The backend API contract defines the expected HTTP endpoints and Centrifugo channel conventions. The frontend is designed to connect to any backend that implements this contract.

Project Structure

src/app/
|-- core/           # Guards, models, services
|-- features/       # Feature areas: auth, chat, contacts, profile
|-- layouts/        # Auth layout and main layout
`-- shared/         # Reusable components, pipes