Thank you for your interest in contributing to Evalify! We welcome contributions from the open-source community to help improve this online exam management tool. This document outlines the process for contributing to the project, including how to set up your environment, follow coding standards, and submit pull requests.
- Getting Started
- Forking the Repository
- Setting Up Your Development Environment
- Working on a Feature Branch
- Coding Standards and Guidelines
- Creating a Pull Request
- Code Review Process
- Reporting Issues
- Roadmap and Progress
- Community Guidelines
Before you start contributing, please:
- Read the README.md file to understand the project.
- Check the Roadmap and Issues page to see what tasks are available.
- Familiarize yourself with the Code of Conduct to ensure a respectful and inclusive environment.
- Go to the Evalify repository.
- Click the "Fork" button in the top-right corner to create a copy of the repository under your GitHub account.
- Clone your forked repository to your local machine:
git clone https://github.com/<YOUR_USERNAME>/evalify.git cd evalify
- Add the original repository as a remote to sync updates:
git remote add upstream https://github.com/evalify/evalify.git
Evalify is built with Next.js. Follow these steps to set up your local environment:
- Install Node.js (version 16 or higher) and npm/yarn if you haven't already.
- Install the project dependencies:
cd evalify npm install # or yarn install
- Request the
.envfile from the project maintainers. This file contains environment variables required for the project to run. You can message the developers via GitHub issues or other communication channels like WhatsApp or email. - Place the
.envfile in the root directory of the project. - Start the development server:
npm run dev # or yarn dev - Open your browser and navigate to
http://localhost:3000to verify the project is running correctly.
To maintain a linear Git history, we use git rebase instead of git merge. Follow these steps:
- Sync your fork with the latest changes from the upstream repository:
git fetch upstream git checkout main git rebase upstream/main
- Create a new branch for your feature or bugfix. Use a descriptive name:
git checkout -b feature/your-feature-name
- Make your changes and commit them with clear and concise messages:
git add . git commit -m "Add: Description of your changes"
- Push your branch to your forked repository:
git push origin feature/your-feature-name
To maintain consistency across the codebase, please adhere to the following guidelines:
- Follow the existing code style and formatting (e.g., indentation, naming conventions).
- Write meaningful commit messages and comments.
- Include unit tests for new features or bug fixes.
- Ensure your code is linted and passes all existing tests:
npm run lint npm run test # or yarn lint yarn test
- Document any new functionality or changes in the relevant documentation files.
- Go to your forked repository on GitHub.
- Click the "Compare & Pull Request" button for your feature branch.
- Fill out the pull request template:
- Provide a clear title and description of your changes.
- Reference any related issues using
#issue-number. - Include screenshots or examples if applicable.
- Submit the pull request and wait for feedback from the maintainers.
- A maintainer will review your pull request and provide feedback.
- If changes are requested, update your branch by rebasing on the latest
mainbranch:git fetch upstream git rebase upstream/main
- Push your updated branch:
git push origin feature/your-feature-name --force-with-lease
- Once approved, your changes will be merged into the main branch, maintaining a linear history.
If you encounter a bug or have a feature request:
- Check the Issues page to see if it has already been reported.
- If not, create a new issue using the provided template.
- Provide as much detail as possible, including steps to reproduce the issue, expected behavior, and actual behavior.
You can track the project's progress and upcoming features on the Evalify Roadmap. Feel free to pick up tasks from the roadmap or suggest new ideas.
We value a positive and inclusive community. Please:
- Be respectful and considerate of others.
- Avoid off-topic discussions in issues and pull requests.
- Follow the Code of Conduct.
Thank you for contributing to Evalify! Your efforts help make this project better for everyone.