First off, thank you for considering contributing to ENV Storage Manager! 🎉
It's people like you that make ENV Storage Manager such a great tool for the developer community.
- Code of Conduct
- How Can I Contribute?
- Getting Started
- Development Setup
- Pull Request Process
- Style Guidelines
- Commit Message Guidelines
- Hacktoberfest Guidelines
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.
Before creating bug reports, please check the existing issues to avoid duplicates. When you create a bug report, include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples
- Describe the behavior you observed and what you expected
- Include screenshots if relevant
- Include your environment details (OS, Node.js version, etc.)
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion:
- Use a clear and descriptive title
- Provide a detailed description of the suggested enhancement
- Explain why this enhancement would be useful
- List any similar features in other tools
Unsure where to begin? Look for issues labeled:
good first issue- Issues suitable for beginnershelp wanted- Issues where we need community helpdocumentation- Help improve our docsbug- Fix known bugs
- Fill in the required template
- Follow the style guidelines
- Include appropriate test cases
- Update documentation as needed
- End all files with a newline
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/ENV_Storage.git cd ENV_Storage - Add the upstream repository:
git remote add upstream https://github.com/curiouscoder-cmd/ENV_Storage.git
- Create a branch for your changes:
git checkout -b feature/your-feature-name
- Node.js 20 or higher
- npm (Node package manager)
- Git
-
Install dependencies:
npm install
-
Generate Prisma client:
npx prisma generate
-
Run in development mode:
npm run electron:dev
# Run tests (when implemented)
npm test
# Run linting
npm run lint
# Build the application
npm run build# Run ESLint
npm run lint
# Build the application
npm run build
# Run all checks (recommended before committing)
npm run lint && npm run build-
Update your fork with the latest upstream changes:
git fetch upstream git rebase upstream/main
-
Make your changes and commit them with clear messages
-
Push to your fork:
git push origin feature/your-feature-name
-
Create a Pull Request from your fork to the main repository
-
Wait for review - maintainers will review your PR and may request changes
-
Make requested changes if any, and push them to your branch
-
Once approved, your PR will be merged! 🎉
Before submitting your PR, ensure:
- Code follows the project's style guidelines
- Linting passes (
npm run lint) - Build succeeds (
npm run build) - New tests added for new features (if applicable)
- Documentation updated (if applicable)
- Commit messages follow guidelines
- No merge conflicts with main branch
- PR description clearly describes the changes
- Issue number referenced (if applicable)
We follow modern JavaScript and React best practices:
- Line length: Maximum 100 characters
- Indentation: 2 spaces (no tabs)
- Quotes: Use double quotes for strings
- Imports: Group and sort imports (use
isort) - Type hints: Use type hints for function signatures
- Docstrings: Use Google-style docstrings
// Use modern ES6+ syntax
import { encrypt } from './crypto';
const encryptSecret = async (secret, key) => {
"""Encrypts a secret using the provided key.
Args:
secret: The plaintext secret to encrypt
key: The encryption key
Returns:
The encrypted secret as bytes
Raises:
ValueError: If secret is empty or key is invalid
"""
if not secret:
raise ValueError("Secret cannot be empty")
# Implementation here
pass- Use Markdown for all documentation
- Include code examples where appropriate
- Keep language clear and concise
- Use proper headings and formatting
We follow the Conventional Commits specification:
<type>(<scope>): <subject>
<body>
<footer>
- feat: A new feature
- fix: A bug fix
- docs: Documentation changes
- style: Code style changes (formatting, etc.)
- refactor: Code refactoring
- test: Adding or updating tests
- chore: Maintenance tasks
feat(cli): add search command for finding environment variables
Implements fuzzy search functionality to quickly find stored secrets
across all projects.
Closes #123
fix(crypto): resolve decryption error with special characters
Fixed an issue where environment variables containing special
characters would fail to decrypt properly.
Fixes #456
docs(readme): update installation instructions
Added clarification for Windows users and troubleshooting section.
We're excited to participate in Hacktoberfest 2025! Here are some guidelines:
- Focus on meaningful contributions
- Avoid spam PRs (e.g., minor typo fixes, whitespace changes)
- Read the issue description carefully before working on it
✅ Accepted:
- Bug fixes
- New features
- Documentation improvements
- Test coverage improvements
- Performance optimizations
- UI/UX enhancements
❌ Not Accepted:
- Automated/bot PRs
- Duplicate PRs
- PRs with no description
- Minor formatting changes without substance
- PRs that don't follow guidelines
- Label: PRs must have the
hacktoberfest-acceptedlabel (added by maintainers) - Review: PRs must be reviewed and approved
- Merge: PRs must be merged or labeled
hacktoberfest-accepted - Timeline: PRs must be created between October 1-31, 2025
- 💬 Comment on issues before starting work to avoid duplicates
- 🔍 Look for
hacktoberfestlabeled issues for curated tasks - 📖 Read the documentation thoroughly
- ✅ Test your changes before submitting
- 🤝 Be patient and respectful with maintainers
- 💬 Join our Discussions
- 📧 Email the maintainers
- 🐛 Check existing Issues
All contributors will be:
- Listed in our README
- Mentioned in release notes
- Part of our amazing community!
- GitHub Flow Guide
- How to Write a Git Commit Message
- JavaScript Best Practices
- React Best Practices
- Hacktoberfest Official Site
Thank you for contributing to ENV Storage Manager! 🚀
Happy coding and Happy Hacktoberfest! 🎃