A modern web application for rating dogs with real-time chat functionality. Built with Next.js, MongoDB, and WebSocket.
- 🐾 Swipe-based dog rating system
- 💬 Real-time global chat
- 📊 Live leaderboard
- 🌍 Filter dogs by country
- 🎉 Interactive animations
- 🎵 Sound feedback on interactions
- Node.js 18 or higher
- MongoDB installed locally or a MongoDB Atlas account
- pnpm package manager (
npm install -g pnpm
)
Note
This project uses pnpm as a package manager.
- Clone the repository:
git clone https://github.com/gupta-soham/DogRater.git
cd DogRater
- Install dependencies:
pnpm install
- Set up environment variables:
cp .env.example .env.local
Update the .env.local
with your configuration:
NEXT_PUBLIC_WS_URL=ws://localhost:3001
MONGODB_URI=mongodb://localhost:27017/dog_ratings
FRONTEND_URL=http://localhost:3000
- Start the development server:
pnpm dev
This will start:
- 🌐 Next.js development server on port 3000
- 🔌 WebSocket server on port 3001
pnpm dev
- Starts both the Next.js development server and WebSocket serverpnpm wss
- Runs only the WebSocket server on port 3001pnpm prod
- Builds and starts the application in production mode
To test the production build locally:
pnpm prod
This will create an optimized production build and start both the Next.js server and WebSocket server concurrently.
We love your input! We want to make contributing to DogRater as easy and transparent as possible, whether it's:
- 🐛 Reporting a bug
- 💡 Submitting a fix
- 🚀 Proposing new features
- 💻 Becoming a maintainer
Contributions are welcome! Please feel free to submit a Pull Request.
-
Fork the repository
-
Clone the fork to your local machine
-
Create a new branch
git checkout -b feat/fooBar
- Make your changes and commit them
git commit -am 'Add some fooBar'
- Push to the branch
git push origin feature/fooBar
- Go to the repository and make a Pull Request.
For major changes, please open an issue first to discuss what you would like to change.
Read our contribution guidelines for more details.
This project is licensed under the MIT License - see the LICENSE file for details.
In short, when you submit code changes, your submissions are understood to be under the same MIT License that covers the project. Feel free to contact the maintainers if that's a concern.
Made with ❤️ by Soham Gupta