Welcome! We're excited you're interested in contributing to the Lean Storytelling App. This guide will help you get started.
By participating in this project, you agree to abide by our Code of Conduct. Please read it to understand the behavior we expect from all contributors.
Before reporting an issue, please:
- Check if the issue already exists in our issue tracker
- Ensure you're using the latest version of the software
- Provide clear reproduction steps
We welcome feature requests! Please:
- Check if the feature has already been requested
- Explain the use case and why it would be valuable
- Provide any relevant examples or mockups
We follow the GitHub Flow workflow:
- Fork the repository and create your branch from
master - Install dependencies: Run
npm installin bothbackend/andfrontend/directories - Make your changes following our coding standards
- Test your changes thoroughly
- Update documentation if needed
- Submit your pull request to the
masterbranch
- Node.js v20+
- PostgreSQL 15+
- Git
# Clone the repository
git clone https://github.com/your-org/lean-storytelling-app.git
cd lean-storytelling-app
# Set up backend
cd backend
npm install
cp .env.example .env
# Edit .env with your database credentials
# Set up frontend
cd ../frontend
npm install
# Run database migrations
cd ../backend
node src/db/migrate.js# Start backend (in one terminal)
cd backend
npm run dev
# Start frontend (in another terminal)
cd frontend
npm run devThe backend will be available at http://localhost:3000 and the frontend at http://localhost:5173.
- Use ES6+ features
- Follow Standard JS style guide
- Use async/await for asynchronous code
- Write meaningful commit messages
- Route files in
backend/src/routes/ - Service files in
backend/src/services/ - Use proper error handling and validation
- Follow RESTful conventions for API endpoints
- Components in
frontend/src/components/ - Pages in
frontend/src/pages/ - Use functional components with hooks
- Follow React best practices
# Backend tests
cd backend
npm test
# Frontend tests
cd frontend
npm test- Test files should be colocated with the code they test
- Use descriptive test names
- Test both happy paths and edge cases
- Aim for high test coverage
- Use JSDoc comments for functions and classes
- Document complex logic with inline comments
- Keep README files up to date
- API endpoints should be documented in the route files
- Include request/response examples
- Document authentication requirements
We follow Conventional Commits format:
<type>(<scope>): <description>
<body>
<footer>
Common types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, missing semicolons)refactor: Code refactoringperf: Performance improvementstest: Adding or modifying testschore: Maintenance tasks
Examples:
feat(auth): add JWT authenticationfix(stories): handle null version datadocs(readme): update installation instructions
- All pull requests require at least one approval
- CI must pass (tests, linting, build)
- Changes should be small and focused
- Address review feedback promptly
- Join our Discussions for questions and ideas
- Follow us on Twitter for updates
- Check our roadmap for upcoming features
By contributing to this project, you agree that your contributions will be licensed under the AGPLv3 License.
Thank you for contributing to Lean Storytelling App! Your help makes this project better for everyone.