Skip to content

Polqt/yappin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Yappin - Real-time Chat Application

A modern, real-time chat application built with a SvelteKit frontend and Go backend, featuring user authentication, chat rooms, achievements, and statistics tracking.

Features

  • Real-time Messaging: WebSocket-powered instant messaging in chat rooms
  • User Authentication: Secure login/signup with JWT tokens
  • Chat Rooms: Create and join public/private rooms
  • User Profiles: View user stats, achievements, and daily check-ins
  • Achievements System: Unlock achievements based on activity
  • Responsive Design: Mobile-friendly interface with TailwindCSS
  • Admin Panel: Database management with Adminer

Tech Stack

  • Frontend: SvelteKit, TypeScript, TailwindCSS, Socket.io-client
  • Backend: Go, Chi router, PostgreSQL, Gorilla WebSockets
  • Database: PostgreSQL with migrations via Goose
  • Deployment: Docker Compose for local development

Prerequisites

  • Go 1.24+
  • Node.js 18+
  • Docker and Docker Compose
  • Git

Getting Started

For Contributors (Hacktoberfest)

  1. Fork the repository

    • Click the "Fork" button on the top right of this repository
    • This creates a copy of the repository in your GitHub account
  2. Clone your fork

    git clone https://github.com/your-username/yappin.git
    cd yappin
  3. Set up upstream remote (optional, for staying updated)

    git remote add upstream https://github.com/Polqt/yappin.git
    git fetch upstream

Local Development Setup

  1. Set up environment variables

    Copy the example environment file and configure your settings:

    cp server/.env.example server/.env

    Edit server/.env with your database credentials and other settings.

  2. Start the database

    docker-compose up -d db adminer
  3. Run database migrations

    cd server
    go run db/migrations/migrate.go up
    cd ..
  4. Start the backend server

    cd server
    go run main.go
  5. Start the frontend (in a new terminal)

    cd client
    npm install
    npm run dev
  6. Access the application

Making Contributions

After setting up your development environment:

  1. Create a feature branch

    git checkout -b feature/your-feature-name
    # or for bug fixes:
    git checkout -b fix/issue-description
  2. Make your changes

    • Follow the coding standards in CONTRIBUTING.md
    • Test your changes thoroughly
    • Update documentation if needed
  3. Commit your changes

    git add .
    git commit -m "feat: add your feature description"
    # Use conventional commit format (see CONTRIBUTING.md)
  4. Push to your fork

    git push origin feature/your-feature-name
  5. Create a Pull Request

    • Go to your fork on GitHub
    • Click "Compare & pull request"
    • Fill out the PR template with details about your changes
    • Submit the PR for review

Project Structure

yappin/
├── client/          # SvelteKit frontend
├── server/          # Go backend
├── docker-compose.yml
└── README.md

Contributing

We welcome contributions! This project participates in Hacktoberfest. See CONTRIBUTING.md for detailed guidelines.

License

MIT License - feel free to use this project for your own purposes.

Support

If you have questions or need help, please open an issue on GitHub.

Releases

No releases published

Packages

No packages published