QuinLine is a classic card + board game of strategy and luck, uniting (not always ;-;) friends and families together. Players form a line of five coins by using the cards distributed to them. Make your own and stop others from forming the QuinLine.
- Real-time Multiplayer: WebSocket-based gameplay for instant updates
- 2-3 Player Support: Configurable game sizes
- Room-Based Games: Simple room code system for joining games
- Python 3.13+
- Node.js 18+
- PostgreSQL
- Redis
-
Navigate to backend directory:
cd backend -
Create and activate virtual environment:
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Create PostgreSQL database:
createdb quinline_db
-
Run migrations:
python manage.py migrate
-
Seed card data:
python manage.py seed_cards
-
Install dependencies (from project root):
npm install
-
Create environment file:
cp .env.local.example .env.local
Start Redis:
redis-serverStart Django:
cd backend
source venv/bin/activate
python manage.py runserverStart Next.js:
npm run dev- Frontend: Web Client on port 3000
- Backend API: API on port 8000
- API Documentation: API Docs
- Django Admin: API Admin
- One player creates a game and shares the room code
- Other players join using the room code
- Game starts automatically when all players join
- Select a Card: Click a card from your hand
- Place Your Coin: Click a valid position on the board
- Pick a New Card: Draw a card to end your turn
- Match your card to a board position to place your coin
- 2-eyed Jacks are wild - place on any empty space
- 1-eyed Jacks remove opponent coins (not from completed quinlines)
- Corner spaces are free and count as wildcards in quinlines
- Create quinlines of 5 coins in a row (horizontal, vertical, or diagonal)
- Win Condition:
- 2 players: First to complete 2 quinlines
- 3 players: First to complete 1 quinline
- Ensure PostgreSQL is running
- Check database exists:
psql -l
- Ensure Redis is running:
redis-cli ping
- Check Django is running on port 8000
- Check Redis is running