Contributor Overview
Thank you for your interest in contributing to Multiforum! This guide will help you get started.
Project Overview
Multiforum is an open-source platform for community-driven discussions, events, and knowledge sharing.
Technology Stack
Frontend (multiforum-nuxt):
- Vue 3 + Nuxt 4
- TypeScript
- Apollo Client (GraphQL)
- Vuetify + Tailwind CSS
- Vitest (unit tests) + Playwright (E2E tests)
Backend (multiforum-backend):
- Node.js 22.x
- Apollo Server
- Neo4j GraphQL Library
- GraphQL Shield (permissions)
- TypeScript
Architecture
┌─────────────┐ GraphQL ┌─────────────┐ Cypher ┌─────────────┐
│ Frontend │ ──────────────▶ │ Backend │ ─────────────▶ │ Neo4j │
│ (Nuxt) │ │ (Apollo) │ │ Database │
└─────────────┘ └─────────────┘ └─────────────┘
Ways to Contribute
Code Contributions
- Bug fixes: Fix issues from the issue tracker
- Features: Implement new functionality
- Refactoring: Improve code quality
- Performance: Optimize slow operations
- Tests: Add or improve test coverage
Non-Code Contributions
- Documentation: Improve docs and guides
- Bug reports: Report issues you find
- Feature requests: Suggest improvements
- Design: UI/UX improvements
- Translation: Internationalization
Getting Started
1. Fork the Repositories
Fork both repositories to your GitHub account:
2. Clone Locally
git clone https://github.com/YOUR-USERNAME/multiforum-nuxt.git
git clone https://github.com/YOUR-USERNAME/multiforum-backend.git
3. Set Up Development Environment
See the Contributing Guide for detailed setup instructions.
4. Find Something to Work On
- Check the issue tracker for
good first issuelabels - Look for
help wantedissues - Ask in discussions what needs attention
5. Make Your Changes
- Create a feature branch
- Make your changes
- Write tests
- Update documentation if needed
6. Submit a Pull Request
- Push your changes
- Open a pull request
- Describe what you changed and why
- Link to related issues
Development Workflow
Branch Naming
Use descriptive branch names:
feature/add-event-remindersfix/comment-notification-bugdocs/update-api-reference
Commit Messages
Write clear commit messages:
feat: add email notifications for event updates
- Send notification when event is modified
- Respect user notification preferences
- Include event details in email
Pull Request Process
- Ensure tests pass
- Update documentation
- Request review
- Address feedback
- Merge when approved
Code Standards
TypeScript
- Use strict mode
- Type all function parameters and returns
- Avoid
anywhen possible - Use interfaces for complex types
Vue Components
- Use
<script setup>with TypeScript - Prop and emit types are required
- Use composables for reusable logic
- Follow naming conventions
Testing
- Write unit tests for utilities
- Write E2E tests for user flows
- Use meaningful test descriptions
- Avoid arbitrary timeouts
Documentation
- Document public APIs
- Update docs when changing behavior
- Include examples where helpful
Communication
Questions
- Check existing documentation
- Search closed issues
- Open a discussion for general questions
Bug Reports
Include:
- Steps to reproduce
- Expected vs actual behavior
- Environment details
- Screenshots if applicable
Feature Requests
Include:
- Use case description
- Proposed solution
- Alternative approaches considered
Recognition
Contributors are recognized in:
- GitHub contributors list
- Release notes (for significant contributions)
- Project documentation
Resources
- Contributing Guide - Detailed setup and guidelines
- API Documentation - GraphQL API reference
- Debug Logging - Debugging tips
Contact
For questions about contributing:
- Open a GitHub discussion
- Email: catherine.luse@gmail.com