Welcome to Moizy Open Source Issues, a developer-friendly hub where you can learn, contribute, and improve your coding skills. This repository hosts beginner-friendly and intermediate issues that anyone can pick up, solve, and submit via Pull Requests.
- Gain real-world experience by solving issues.
- Build a strong GitHub profile with meaningful contributions.
- Collaborate with other developers and grow your network.
- Improve coding, problem-solving, and version control skills.
```bash
/issues
└── beginner
└── intermediate
/README.md
/CONTRIBUTING.md
/LICENSE
- Beginner: Issues for newcomers, simple and easy to solve.
- Intermediate: Slightly complex issues to challenge your skills.
-
Go to the Issues tab.
-
Pick an open issue that you want to work on.
-
Comment:
"I want to work on this"to claim it. -
Fork the repository and create a branch for your work:
git checkout -b issue-<issue-number>-your-name
-
Solve the issue, write clean code, and commit changes:
git commit -m "fix: <short-description-of-fix>" -
Push the branch and create a Pull Request (PR) referencing the issue.
-
Wait for review and merge.
Use utils/debounceAsync.js to delay an asynchronous operation until calls stop arriving for the configured delay.
const debounceAsync = require("./utils/debounceAsync");
const searchUsers = debounceAsync(async query => {
const response = await fetch(`/api/users?q=${encodeURIComponent(query)}`);
if (!response.ok) {
throw new Error("Unable to search users");
}
return response.json();
}, 300);
searchUsers("rea").then(users => console.log(users));
searchUsers("react").then(users => console.log(users));Only the latest call in a debounce window invokes the callback. Every promise returned during that window settles with the final invocation's value or error. The latest call's arguments and this context are used. The callback may return a promise or a regular value. The delay must be a finite, non-negative number.
Use utils/maskSensitiveData.js to create a safe copy of data before logging.
It masks common sensitive fields such as password, token, accessToken,
refreshToken, secret, apiKey, and creditCard.
const maskSensitiveData = require('./utils/maskSensitiveData');
const user = {
email: 'john@example.com',
password: 'secret123'
};
const safeUser = maskSensitiveData(user);
console.log(safeUser);
// { email: 'john@example.com', password: '********' }Custom fields can be added when needed:
maskSensitiveData(user, ['salary', 'nationalId']);Use gitignore-generator/gitignore.js to generate a ready-to-use .gitignore file for one or more technologies (Node.js, React, Next.js, Express.js, VS Code, JetBrains IDEs, Python, Docker, Laravel, Flutter, Android, Go, Rust, Java).
node gitignore-generator/gitignore.js node react vscodeSee gitignore-generator/README.md for full usage and supported technologies.
✅ Issue Guidelines
- Only pick one issue at a time.
- Solve the issue within 7 days.
- Keep code readable and well-commented.
- Include tests or examples if applicable.
- Respect others’ contributions.
🎯 Labels
good first issue— Beginner-friendly issues.help wanted— Issues that need extra eyes.intermediate— Slightly challenging issues.
📜 License
This repository is licensed under the MIT License. See the LICENSE file for details. You’re free to use, modify, and contribute while giving credit.
🤝 Join the Community
We encourage discussions, questions, and collaboration! Feel free to open a discussion in the Discussions tab for guidance, doubts, or project ideas.
💡 Keep Learning
Every issue is a chance to practice, learn, and showcase your skills. Start contributing today and grow your developer profile. 🚀