# Contributing to SocialiseIT First off, thanks for taking the time to contribute! 🎉 ## How Can I Contribute? ### Reporting Bugs Before creating bug reports, please check the [existing issues](https://github.com/MerlinStacks/socaliseit/issues) to avoid duplicates. When creating a bug report, include: - **Clear title** describing the issue - **Steps to reproduce** the behavior - **Expected behavior** vs what actually happened - **Screenshots** if applicable - **Environment details** (OS, browser, Docker version) ### Suggesting Features Feature requests are welcome! Please: 1. Check if the feature is already on our [Roadmap](README.md#roadmap) 2. Open an issue with the `enhancement` label 3. Describe the use case and expected behavior ### Pull Requests 1. **Fork** the repository 2. **Create a branch** for your feature: `git checkout -b feature/amazing-feature` 3. **Make your changes** following our code style 4. **Test thoroughly** — ensure `npm run build` passes 5. **Commit** with clear messages: `git commit -m 'Add amazing feature'` 6. **Push** to your fork: `git push origin feature/amazing-feature` 7. **Open a Pull Request** against `main` ## Development Setup ```bash # Clone your fork git clone https://github.com/YOUR_USERNAME/socialiseit.git cd socialiseit # Install dependencies cd app npm install # Set up environment cp ../stack.env.example ../.env # Start development docker-compose up -d postgres redis npm run dev ``` ## Testing ```bash npm run test # Unit tests (Vitest) npm run test:e2e # E2E tests (Playwright) npm run test:coverage # Coverage report ``` ## Code Style - **TypeScript** is required for all new code - **ESLint** rules must pass (`npm run lint`) - **Prisma** schema changes require migrations (`npx prisma migrate dev`) - **Components** should use the existing design system tokens - **API routes** should include Zod or Valibot validation ## Commit Messages Follow conventional commits: - `feat:` New features - `fix:` Bug fixes - `docs:` Documentation changes - `refactor:` Code refactoring - `test:` Adding or updating tests - `chore:` Maintenance tasks ## Questions? Open a [discussion](https://github.com/MerlinStacks/socaliseit/discussions) for general questions.