Thank you for your interest in contributing to Society Ease! We welcome contributions from the community and are pleased to have you aboard.
- Code of Conduct
- Getting Started
- How to Contribute
- Development Setup
- Pull Request Process
- Coding Standards
- Issue Guidelines
- Community
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
Before you begin, ensure you have the following installed:
- Node.js 18.0 or higher
- npm or yarn
- MongoDB
- Git
-
Fork the repository
git clone https://github.com/your-username/society-ease.git cd society-ease -
Install dependencies for all modules
npm run install:all
-
Set up environment variables
- Copy
.env.examplefiles in each directory (backend,frontend,admin) - Fill in the required environment variables
- Copy
-
Start the development servers
npm run dev
This will start:
- Backend API server on
http://localhost:5000 - Frontend (Resident Portal) on
http://localhost:3000 - Admin Portal on
http://localhost:3001
We welcome several types of contributions:
- 🐛 Bug Reports: Help us identify and fix bugs
- 🚀 Feature Requests: Suggest new features or improvements
- 📝 Documentation: Improve our documentation
- 💡 Code Contributions: Fix bugs or implement features
- 🎨 UI/UX Improvements: Enhance user experience
- 🧪 Testing: Add or improve tests
- Check existing issues and pull requests
- For major changes, please open an issue first to discuss your proposed changes
- Make sure your contribution aligns with the project's goals
-
Create a feature branch
git checkout -b feature/your-feature-name # or git checkout -b fix/issue-number -
Make your changes
- Write clear, concise commit messages
- Follow our coding standards
- Add tests for new functionality
- Update documentation as needed
-
Test your changes
# Run tests for backend cd backend && npm test # Run linting for frontend cd frontend && npm run lint # Run linting for admin cd admin && npm run lint
-
Commit your changes
git add . git commit -m "feat: add user notification preferences"
-
Push to your fork
git push origin feature/your-feature-name
-
Open a Pull Request
- Use a clear title and description
- Reference any related issues
- Include screenshots for UI changes
- Ensure all checks pass
We follow Conventional Commits specification:
feat:new featurefix:bug fixdocs:documentation changesstyle:formatting, missing semicolons, etc.refactor:code refactoringtest:adding or updating testschore:maintenance tasks
Examples:
feat(auth): add two-factor authentication
fix(billing): resolve payment gateway timeout issue
docs: update API documentation for alerts
- Write clean, readable, and maintainable code
- Follow existing code style and patterns
- Add comments for complex logic
- Use meaningful variable and function names
- Keep functions small and focused
- Use ES6+ features and async/await
- Follow RESTful API conventions
- Implement proper error handling
- Add input validation and sanitization
- Write comprehensive API documentation
- Use TypeScript for type safety
- Follow React best practices and hooks patterns
- Use Tailwind CSS for styling
- Implement responsive design
- Follow accessibility guidelines (WCAG)
- Use meaningful component names
- Design efficient schemas
- Use appropriate indexes
- Implement data validation
- Follow naming conventions
When reporting bugs, please include:
- Environment details (OS, Node.js version, browser)
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Screenshots or error messages
- Additional context that might be helpful
For feature requests, please provide:
- Clear description of the proposed feature
- Use case and motivation
- Possible implementation approach
- Alternative solutions considered
We use the following labels to categorize issues:
bug- Something isn't workingenhancement- New feature or requestdocumentation- Improvements or additions to docsgood first issue- Good for newcomershelp wanted- Extra attention is neededpriority: high- High priority itemspriority: low- Low priority items
society-ease/
├── backend/ # Node.js API server
├── frontend/ # Next.js resident portal
├── admin/ # Next.js admin dashboard
├── docs/ # Project documentation
└── .github/ # GitHub templates and workflows
- Backend: Node.js, Express.js, MongoDB, JWT
- Frontend: Next.js 15, React 19, TypeScript, Tailwind CSS
- Admin: Next.js 15, React 19, TypeScript, Tailwind CSS
- Database: MongoDB with Mongoose
- Authentication: JWT with role-based access
- File Upload: ImageKit
- Payment: Razorpay
- Write unit tests for utility functions
- Add integration tests for API endpoints
- Include component tests for React components
- Test user flows end-to-end when possible
- Update README.md if your changes affect setup or usage
- Add inline code comments for complex logic
- Update API documentation for backend changes
- Include TypeScript type definitions
- 📫 Email: aayushvaghela@society-ease.com
- 💬 Discussions: Use GitHub Discussions for questions
- 🐛 Issues: Report bugs using GitHub Issues
We appreciate all contributions! Contributors will be:
- Added to our README contributors section
- Mentioned in release notes for significant contributions
- Eligible for special recognition badges
- Use the development environment - Don't test on production data
- Keep PRs focused - One feature or fix per PR
- Ask questions - Don't hesitate to ask if you're unsure about something
- Be patient - Reviews take time, and we appreciate your understanding
- Features and fixes are merged into
developbranch - Release candidates are created for testing
- Stable releases are merged into
mainbranch - Semantic versioning is used for releases
By contributing to Society Ease, you agree that your contributions will be licensed under the same MIT License that covers the project.
Thank you for contributing to Society Ease! Together, we're building a better society management platform. 🏢✨