Thank you for your interest in contributing to Snap2Slides! This project was built as a learning journey, and I welcome contributions that help improve the application.
- Fork the repository:
https://github.com/SaurabhCodesAI/snap2slides - Clone your fork:
git clone https://github.com/your-username/snap2slides.git - Install dependencies:
npm install - Set up environment variables (see
.env.example) - Run development server:
npm run dev
- Use TypeScript for all new code
- Follow existing code formatting (Prettier/ESLint configured)
- Add meaningful comments for complex logic
- Use semantic commit messages
- Test your changes with various file types (PDF, images, documents)
- Verify mobile compatibility
- Check that the admin dashboard still works
- Test error handling scenarios
- Update README if adding new features
- Add inline documentation for new functions
- Update API documentation if modifying endpoints
- Additional file format support (Excel, CSV)
- Slide template customization options
- Batch file processing
- Performance optimizations
- Dark/light theme toggle
- User authentication system
- File history and management
- Advanced AI prompt customization
- Internationalization (i18n)
- Analytics and usage tracking
- Social sharing features
- API rate limiting dashboard
When reporting issues, please include:
- Steps to reproduce the problem
- Expected vs actual behavior
- Screenshots or videos if applicable
- Browser and device information
- File type and size if relevant
Before submitting feature requests:
- Check existing issues to avoid duplicates
- Explain the use case and expected benefit
- Consider backward compatibility
- Think about mobile/accessibility implications
- Create an Issue First: Discuss significant changes before coding
- Branch Naming: Use descriptive names (
feature/batch-processing,fix/mobile-upload) - Commit Messages: Follow conventional commits format
- Testing: Ensure all functionality works as expected
- Documentation: Update relevant docs and comments
feat: add batch file processing capability
fix: resolve mobile upload CORS issue
docs: update API documentation for new endpoints
refactor: optimize React components with memo
GEMINI_API_KEY_1=your_primary_gemini_key
GEMINI_API_KEY_2=your_backup_gemini_key
GEMINI_API_KEY_3=your_third_gemini_key
PERPLEXITY_API_KEY=your_perplexity_key (optional)npm run dev- Development servernpm run dev:network- Network-accessible development servernpm run build- Production buildnpm run start- Start production servernpm run lint- Run ESLintnpm run type-check- TypeScript type checking
This project follows a simple code of conduct:
- Be respectful and constructive in discussions
- Help create a welcoming environment for all skill levels
- Focus on what's best for the community and project
- Show empathy towards other community members
- GitHub Issues: For bugs, features, and technical questions
- GitHub Discussions: For general questions and ideas
- Email: saurabhcodesai@example.com (replace with actual email)
Contributors will be:
- Added to the README contributors section
- Mentioned in release notes for significant contributions
- Given credit in commit messages and documentation
This project is great for learning:
- Next.js 14 with App Router and TypeScript
- AI Integration with Google Gemini API
- Mobile-First Development and responsive design
- Production Deployment with Vercel
- Error Handling and resilient system design
Feel free to use this project as a learning resource, and don't hesitate to ask questions!
Note: This project was built as a genuine learning journey over 3 weeks. The commit history reflects real development challenges and solutions, making it a great reference for understanding real-world development processes.