First off, thank you for considering contributing to Nexalo! It's people like you that make Nexalo such a great tool.
- Code of Conduct
- Getting Started
- Coding Standards
- Setting Up the Development Environment
- Testing
- Documentation
- Community
This project and everyone participating in it is governed by the Nexalo Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [dev.hridoy2002@gmail.com].
- Feel free to submit issues and enhancement requests.
- Before creating an issue, please check that a similar issue doesn't already exist.
- When you create a new issue, please provide as much detail as possible, including steps to reproduce if it's a bug.
- Fork the repository and create your branch from
main
. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints.
- Issue that pull request!
- Use ES6+ features
- Maintain consistent error handling
- Add comments for complex logic
- Follow the existing command structure
- Use meaningful variable and function names
- Keep functions small and focused
- Use async/await for asynchronous operations
-
Clone the repository:
git clone https://github.com/1dev-hridoy/Nexalo.git cd nexalo
-
Install dependencies:
npm install
-
Set up your
.env
file with the necessary environment variables:BOT_TOKEN=YOUR_BOT_TOKEN OWNER_ID=OWNER_ID_HERE ADMIN_IDS=comma_separated_admin_ids MONGODB_URI=YOUR_MONGODB_URI
-
Start the bot in development mode:
npm run dev
- Write unit tests for new features or bug fixes.
- Run the existing test suite before submitting a pull request:
npm test
- Aim for high test coverage for critical parts of the codebase.
- Update the README.md if you change functionality.
- Comment your code where necessary.
- If you add new commands, include them in the command documentation.
-
Create a new file in the
commands
directory with the command name (e.g.,mycommand.js
). -
Use the following template:
module.exports = { name: 'mycommand', adminOnly: false, ownerOnly: false, category: 'Category', description: 'Command description', guide: 'How to use the command', execute: async (bot, msg, args) => { // Command logic here } };
-
Implement the command logic in the
execute
function. -
Test your command thoroughly.
-
Update the command documentation if necessary.
- You can join our Telegram group for discussions about the development of Nexalo.
- For major changes, please open an issue first to discuss what you would like to change.
Remember, contributions to Nexalo should be a fun, enjoyable, and educational experience. If you're having trouble with your contribution, please reach out for help!
Thank you for contributing to Nexalo!