A modern, real-time chat application built with a SvelteKit frontend and Go backend, featuring user authentication, chat rooms, achievements, and statistics tracking.
- 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
- 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
- Go 1.24+
- Node.js 18+
- Docker and Docker Compose
- Git
-
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
-
Clone your fork
git clone https://github.com/your-username/yappin.git cd yappin
-
Set up upstream remote (optional, for staying updated)
git remote add upstream https://github.com/Polqt/yappin.git git fetch upstream
-
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. -
Start the database
docker-compose up -d db adminer
-
Run database migrations
cd server go run db/migrations/migrate.go up cd ..
-
Start the backend server
cd server go run main.go
-
Start the frontend (in a new terminal)
cd client npm install npm run dev
-
Access the application
- Frontend: http://localhost:5173
- Adminer (Database UI): http://localhost:8080
After setting up your development environment:
-
Create a feature branch
git checkout -b feature/your-feature-name # or for bug fixes: git checkout -b fix/issue-description
-
Make your changes
- Follow the coding standards in CONTRIBUTING.md
- Test your changes thoroughly
- Update documentation if needed
-
Commit your changes
git add . git commit -m "feat: add your feature description" # Use conventional commit format (see CONTRIBUTING.md)
-
Push to your fork
git push origin feature/your-feature-name
-
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
yappin/
├── client/ # SvelteKit frontend
├── server/ # Go backend
├── docker-compose.yml
└── README.md
We welcome contributions! This project participates in Hacktoberfest. See CONTRIBUTING.md for detailed guidelines.
MIT License - feel free to use this project for your own purposes.
If you have questions or need help, please open an issue on GitHub.