Thanks for your interest in contributing! This project was built as part of a dissertation, but contributions are welcome to improve the game.
-
Fork the repository at github.com/knurdz/diss-master
-
Clone your fork
git clone https://github.com/<your-username>/diss-master.git cd diss-master
-
Install dependencies
npm install
-
Set up environment variables
cp .env.local.example .env.local
Fill in your Appwrite credentials. See
scripts/setup-appwrite.mdfor database setup instructions. -
Start the development server
npm run dev
-
Create a new branch from
main:git checkout -b feature/your-feature-name
-
Make your changes and ensure they pass linting:
npm run lint
-
Test your changes locally by running the dev server.
-
Commit with a clear, descriptive message:
git commit -m "Add: brief description of your change" -
Push to your fork and open a pull request against
main.
- Bug fixes — Found something broken? Fix it and submit a PR.
- UI/UX improvements — Better layouts, animations, or accessibility.
- New features — Have an idea? Open an issue first to discuss it.
- Documentation — Improvements to the README, setup guides, or code comments.
- Performance — Optimizations to reduce load times or improve responsiveness.
- Keep PRs focused on a single change or feature.
- Follow the existing code style (TypeScript, Tailwind CSS classes, component structure).
- Do not commit
.env.localor any files containing secrets. - Run
npm run lintbefore submitting to catch any issues. - Be respectful and constructive in discussions.
If you find a bug or have a suggestion, open an issue with:
- A clear title and description
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Screenshots if applicable
src/
app/ # Next.js pages (home, game, join, about)
components/ # React components
hooks/ # Custom hooks
lib/ # Appwrite client, game logic, word generation
store/ # Zustand game store
types/ # TypeScript type definitions
This project is for educational purposes as part of a dissertation. By contributing, you agree that your contributions fall under the same terms.