Skip to content

otoricode/chatat

Repository files navigation

Chatat

WhatsApp-style chat + Notion-style document collaboration mobile app.

Tech Stack

  • Backend: Go 1.23+ (Chi, pgx, Redis, WebSocket, JWT, zerolog)
  • Frontend: React Native / Expo (TypeScript, Zustand, React Navigation)
  • Database: PostgreSQL 16, Redis 7
  • Infrastructure: Docker Compose

Prerequisites

  • Go 1.23+
  • Node.js 20+
  • Docker & Docker Compose
  • Xcode (for iOS)
  • Android Studio (for Android)

Getting Started

1. Clone & Setup

git clone https://github.com/otoritech/chatat.git
cd chatat

2. Start Database Services

make db-up

This starts PostgreSQL (port 5433) and Redis (port 6380) via Docker Compose.

3. Start Backend Server

cp server/.env.example server/.env
make dev

Server runs at http://localhost:8080. Health check: GET /health.

4. Start Mobile App

cd mobile
npm install
npx expo start

5. Verify Setup

# Backend health check
curl http://localhost:8080/health

# Run tests
make test

# Run linter
make lint

# TypeScript check
make mobile-typecheck

Development Commands

Command Description
make dev Start Go server
make build Build Go binary
make test Run Go tests
make lint Run golangci-lint
make vet Run go vet
make fmt Format Go code
make db-up Start PostgreSQL + Redis
make db-down Stop PostgreSQL + Redis
make db-reset Reset database (drop + recreate)
make mobile-start Start Expo dev server
make mobile-typecheck TypeScript type check
make check Run all checks (vet + lint + test + typecheck)

Project Structure

chatat/
├── server/          # Go backend (API + WebSocket)
├── mobile/          # React Native / Expo frontend
├── docs/            # Development documentation
├── plan/            # Implementation plan (27 phases)
└── docker-compose.yml

See docs/project-structure.md for detailed structure.

Documentation

License

Private - All rights reserved.

About

Chat application with note sharing

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published