Thank you for your interest in contributing to ScriptFolio: Terminal Portfolio Generator! We welcome contributions from everyone and appreciate your help in making this project better.
- Code of Conduct
- Getting Started
- How to Contribute
- Development Workflow
- Coding Guidelines
- Submitting Changes
- Reporting Issues
- Feature Requests
By participating in this project, you agree to maintain a respectful and inclusive environment. Be kind, considerate, and constructive in your interactions.
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher)
- npm (comes with Node.js)
- Git
- A code editor (VS Code recommended)
-
Fork the repository on GitHub
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/Terminal.git cd Terminal -
Add upstream remote:
git remote add upstream https://github.com/alokverma18/Terminal.git
-
Install dependencies:
npm install
-
Start the development server:
npm start
-
Visit
http://localhost:4200/to see the application running
For a detailed understanding of the project structure and architecture, refer to our LEARN.md guide.
There are many ways to contribute to ScriptFolio:
- Fix bugs: Look for issues labeled
bug - Add features: Implement new functionality or enhancements
- Improve documentation: Help us improve our guides and docs
- Write tests: Increase code coverage and reliability
- Review pull requests: Provide feedback on open PRs
- Report issues: Let us know about bugs or problems you encounter
Create a descriptive branch name for your work:
git checkout -b feature/your-feature-name
# or
git checkout -b fix/bug-description- Write clean, readable code
- Follow the existing code style and conventions
- Add comments for complex logic
- Update documentation if needed
Before submitting, ensure your changes work correctly:
# Run the development server
npm start
# Run tests (if applicable)
npm test
# Run linting
npm run lint
# Build for production
npm run buildManually test your changes:
- Fill out the form with test data
- Navigate through all pages
- Test affected commands in the terminal preview
- Verify export functionality works
- Check for console errors
Write clear, concise commit messages:
git add .
git commit -m "Add feature: brief description of what you did"Good commit message examples:
Add dark mode toggle to preview componentFix validation error in education form fieldUpdate README with new installation instructionsRefactor portfolio service for better performance
Before submitting your changes, sync with the main repository:
git fetch upstream
git rebase upstream/maingit push origin your-branch-name- Use TypeScript strict mode features
- Follow Angular best practices and style guide
- Use standalone components (Angular 17+)
- Implement proper type definitions
- Use reactive forms for form handling
- Utilize Angular services for shared logic
- Indentation: 2 spaces
- Quotes: Single quotes for TypeScript/JavaScript
- Semicolons: Use semicolons
- Naming conventions:
- Components: PascalCase (
FormComponent) - Files: kebab-case (
form.component.ts) - Variables/Functions: camelCase (
getUserData) - Constants: UPPER_SNAKE_CASE (
MAX_ITEMS)
- Components: PascalCase (
@Component({
selector: 'app-example',
standalone: true,
imports: [CommonModule, ReactiveFormsModule],
templateUrl: './example.component.html',
styleUrls: ['./example.component.css']
})
export class ExampleComponent {
// Public properties first
// Constructor
// Lifecycle hooks
// Public methods
// Private methods
}- Add comments for complex logic or non-obvious code
- Use JSDoc comments for public methods and classes
- Keep comments up-to-date with code changes
-
Open a Pull Request from your fork to the
mainbranch of the original repository -
Provide a clear description including:
- What changes you made
- Why you made them
- Any related issue numbers (e.g., "Fixes #123")
- Screenshots (if UI changes)
-
PR Title Format:
Feature: Add dark mode supportFix: Correct email validation in contact formDocs: Update installation instructionsRefactor: Improve portfolio service structure
-
Wait for review: Maintainers will review your PR and may request changes
-
Make requested changes if any, and push them to your branch
-
PR Approval: Once approved, a maintainer will merge your PR
Before submitting, ensure:
- Code follows the project's coding guidelines
- Changes have been tested locally
- No console errors or warnings
- Documentation updated (if needed)
- Commit messages are clear and descriptive
- Branch is up-to-date with main
- PR description is clear and complete
Found a bug or problem? Please open an issue!
- Search existing issues to avoid duplicates
- Try the latest version to see if it's already fixed
- Check the documentation (README.md, LEARN.md)
Include the following information:
For Bugs:
- Clear, descriptive title
- Steps to reproduce the issue
- Expected behavior
- Actual behavior
- Screenshots or error messages
- Environment details (browser, OS, Node version)
Example:
Title: Export function fails with large project arrays
Steps to reproduce:
1. Add 10+ projects in the form
2. Navigate to preview
3. Run 'export' command
Expected: ZIP file downloads successfully
Actual: Browser console shows error "Quota exceeded"
Browser: Chrome 120
OS: Windows 11
Have an idea for a new feature? We'd love to hear it!
- Check existing feature requests to avoid duplicates
- Open a new issue with the
enhancementlabel - Describe the feature:
- What problem does it solve?
- How would it work?
- Why would it benefit users?
- Any implementation ideas?
**Feature Description:**
[Clear description of the feature]
**Problem it Solves:**
[What user problem does this address?]
**Proposed Solution:**
[How you envision it working]
**Alternatives Considered:**
[Other approaches you thought about]
**Additional Context:**
[Screenshots, mockups, examples, etc.]
If you have questions about contributing:
- Review the LEARN.md guide for project architecture details
- Check the README.md for general information
- Open an issue with the
questionlabel - Reach out to the maintainers
All contributors will be recognized! Your contributions, big or small, are valued and appreciated.
Thank you for contributing to ScriptFolio! 🚀
Happy Contributing!
By contributing to this project, you agree that your contributions will be licensed under the project's MIT License.