Skip to main content

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 issue labels
  • Look for help wanted issues
  • 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-reminders
  • fix/comment-notification-bug
  • docs/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

  1. Ensure tests pass
  2. Update documentation
  3. Request review
  4. Address feedback
  5. Merge when approved

Code Standards

TypeScript

  • Use strict mode
  • Type all function parameters and returns
  • Avoid any when 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

Contact

For questions about contributing: