Welcome Contributors! π
Thank you for your interest in contributing to Reflect AI! This project was created for the PANW Hackathon Challenge 2026, and we welcome contributions from the community. Whether youβre fixing bugs, adding features, improving documentation, or suggesting ideas, your contributions help make Reflect AI better for everyone.Ways to Contribute
π Report Bugs
Found a bug? Help us fix it:- Check existing issues to see if itβs already reported
- Create a new issue with:
- Clear, descriptive title
- Steps to reproduce the bug
- Expected vs. actual behavior
- Your environment (OS, Python version, browser)
- Screenshots or error messages if applicable
π‘ Suggest Features
Have an idea for a new feature?- Open an issue with the
enhancementlabel - Describe:
- The problem it solves
- How it would work
- Why itβs valuable for users
- Any implementation ideas
π Improve Documentation
Documentation contributions are highly valued:- Fix typos or clarify confusing sections
- Add examples or tutorials
- Improve code comments
- Translate documentation to other languages
- Add FAQ entries based on common questions
π§ Submit Code Changes
Ready to write code? Follow the development workflow below.Development Setup
Prerequisites
Before you start, ensure you have:- Python 3.9 or higher
- Git for version control
- Text editor or IDE (VS Code, PyCharm, etc.)
- Modern web browser for testing
Fork and Clone
- Fork the repository on GitHub (click the Fork button)
-
Clone your fork:
-
Add upstream remote (to sync with the main repo):
Install Dependencies
Run the Development Server
http://127.0.0.1:5000
Debug mode features:
- Auto-reload on code changes
- Detailed error messages
- Interactive debugger
- Verbose logging
Development Workflow
1. Create a Branch
Always create a new branch for your changes:feature/- New features or enhancementsfix/- Bug fixesdocs/- Documentation improvementsrefactor/- Code refactoringtest/- Test additions or improvements
2. Make Your Changes
Edit the code:- Keep changes focused and atomic
- Follow the code style guidelines (see below)
- Add comments for complex logic
- Update documentation if needed
3. Commit Your Changes
- Use present tense (βAdd featureβ not βAdded featureβ)
- Be specific and concise
- Reference issue numbers:
Fix #123: Description - Examples:
Add dark mode support for chartsFix #45: Resolve CORS error on API callsDocs: Update installation instructionsRefactor: Simplify sentiment analysis logic
4. Push and Create Pull Request
- Navigate to your fork
- Click βCompare & pull requestβ
- Fill out the PR template:
- Title: Clear, descriptive summary
- Description: What changed and why
- Related Issues: Link to issues (Fixes #123)
- Testing: How you tested the changes
- Screenshots: If UI changes are involved
Code Style Guidelines
Python (Backend)
Follow PEP 8 style guide:- 4 spaces for indentation (no tabs)
- Max line length: 88 characters (Black formatter standard)
- Use
snake_casefor functions and variables - Use
PascalCasefor classes - Add docstrings to all functions
- Include type hints where helpful
JavaScript (Frontend)
- 2 spaces for indentation
- Use
camelCasefor functions and variables - Use
PascalCasefor classes and constructors - Prefer
constoverlet, avoidvar - Add comments for complex logic
- Keep functions small and focused
CSS
- Use CSS variables for colors and spacing
- Organize by component/section
- Use kebab-case for class names
- Avoid deep nesting (max 3 levels)
- Comment non-obvious styles
Testing Guidelines
Manual Testing Checklist
Before submitting a PR, test: Core Features β- Create a new journal entry
- Edit an existing entry
- Delete an entry
- Navigate between months/years
- View insights and charts
- Export data
- Import data
- Toggle dark/light theme
- Very long entries (10,000+ characters)
- Special characters and emojis
- Empty entries
- Rapid saves (spam clicking save)
- Offline behavior (disconnect internet)
- Chrome/Edge
- Firefox
- Safari (if available)
- Mobile responsive view
- Invalid JSON in data file
- Missing API key
- API rate limit exceeded
- Port already in use
Automated Testing
Currently, Reflect AI doesnβt have automated tests. Contributions welcome! Potential test additions:- Unit tests for backend API endpoints (pytest)
- Unit tests for sentiment analysis
- Frontend tests (Jest, Vitest)
- Integration tests (Selenium, Playwright)
- API contract tests
Pull Request Process
Before Submitting
-
Sync with upstream:
- Test thoroughly (see testing checklist)
-
Update documentation if needed:
- README.md
- Code comments
- API documentation
- This guide
-
Check for conflicts:
PR Review Process
- Maintainer review: A project maintainer will review your PR
- Feedback: You may receive comments or change requests
- Updates: Make requested changes and push to your branch
- Approval: Once approved, your PR will be merged
- Cleanup: Delete your branch after merge
- Code quality and style adherence
- Functionality and correctness
- Test coverage
- Documentation updates
- No breaking changes (unless discussed)
- Performance implications
After Your PR is Merged
Project Structure
Understanding the codebase:app.py:64-120- Data layer functionsapp.py:400-600- API endpoint definitionsstatic/app.js:1-200- Initialization and configstatic/app.js:500-800- Calendar renderingstatic/styles.css:1-100- CSS variables and theming
Code of Conduct
We are committed to providing a welcoming and inclusive environment: β Do:- Be respectful and constructive
- Welcome newcomers and help them learn
- Focus on whatβs best for the community
- Accept constructive criticism gracefully
- Show empathy toward others
- Use offensive or discriminatory language
- Attack or insult other contributors
- Publish othersβ private information
- Engage in trolling or harassment
- Spam issues or PRs
Recognition
Contributors are recognized in:- GitHub contributors list
- Release notes for significant contributions
- README acknowledgments
Getting Help
Stuck or have questions?- GitHub Discussions: Ask questions and discuss ideas
- Issues: Tag your question with
questionlabel - Documentation: Check the FAQ and Troubleshooting
- Code comments: Many functions have detailed docstrings
good first issue- Perfect for newcomershelp wanted- We need community helpdocumentation- Documentation improvementsenhancement- New features to build