A comprehensive church management system designed to help religious organizations efficiently manage their congregations, events, finances, and administrative tasks.
- Member Registration: Complete member profiles with personal information, contact details, and family relationships
- Family Management: Group members into families with hierarchical relationships
- Member Directory: Searchable directory with filtering and sorting capabilities
- Attendance Tracking: Record and track service attendance with statistical reporting
- Email Integration: Automated email notifications and newsletters
- User Role Management: Different access levels for pastors, administrators, and members
- Node.js (v14 or higher)
- MongoDB (v4.4 or higher)
- Git
-
Clone the repository bash git clone [https://github.com/Jastinmb904/Church-Management.git] cd Church-Management
-
Install dependencies bash npm install
-
Environment Setup bash cp .env.example .env
Configure your environment variables: env NODE_ENV=development PORT=3000 MONGODB_URI=mongodb://localhost:27017/church_management REDIS_URL=redis://localhost:6379 JWT_SECRET=your_jwt_secret_here EMAIL_SERVICE=gmail EMAIL_USER=your_email@gmail.com EMAIL_PASS=your_app_password
-
Database Setup bash npm run db:migrate npm run db:seed
-
Start the application bash
npm run dev
npm start
-
Access the application
- Web Interface: http://localhost:3000
- Admin Panel: http://localhost:3000/admin
- Default Admin: admin@church.com / admin123
-
Initial Setup
- Log in with admin credentials
- Configure church information and settings
- Set up user roles and permissions
-
Member Management
- Add new members through the Members section
- Create family relationships
- Update member information and status
- Generate member reports
-
Profile Management
- Update personal information
- View giving history
- Register for events
- Access church directory
-
Online Giving
- Make donations online
http POST /api/auth/login POST /api/auth/logout POST /api/auth/refresh-token POST /api/auth/forgot-password POST /api/auth/reset-password
We welcome contributions from the community! Here's how you can help:
-
Fork the repository
-
Create a feature branch bash git checkout -b feature/amazing-feature
-
Make your changes
-
Run tests bash npm test
-
Commit your changes bash git commit -m 'Add some amazing feature'
-
Push to the branch bash git push origin feature/amazing-feature
-
Open a Pull Request
- Follow the existing code style and conventions
- Write tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting
- Keep commits focused and atomic
This project uses ESLint and Prettier for code formatting:
bash
npm run lint
npm run lint:fix
npm run format
Run the test suite:
bash
npm test
npm run test:watch
npm run test:coverage
npm run test:integration
-
Build the Docker image bash docker build -t church-management .
-
Run with Docker Compose bash docker-compose up -d
-
Prepare the production environment bash npm run build
-
Set production environment variables
-
Start the application bash npm start
Database Connection Issues
- Verify MongoDB is running
- Check connection string in .env
- Ensure database user has proper permissions
Email Not Sending
- Verify email credentials
- Ensure less secure app access is enabled (for Gmail)
Performance Issues
- Check database indexes
- Monitor memory usage
- Review query performance
This project is licensed under the MIT License - see the LICENSE file for details.
If you need help or have questions:
- Issues: Report bugs on GitHub Issues
- Email: Contact us at jastinmb904@gmail.com
- Thanks to all contributors who have helped make this project better
- Special thanks to the open-source community for inspiration and resources
- Built with love for religious communities worldwide
Made with β€ for churchesΒ everywhere