A comprehensive Parish ERP system for managing church operations including families, members, sacraments, donations, and more.
- Features
- Tech Stack
- Prerequisites
- Installation
- Running the Application
- Test Credentials
- Project Structure
- Features Overview
- API Endpoints
- Screenshots
- Contributing
- License
- π Authentication - Secure login system with role-based access
- π¨βπ©βπ§βπ¦ Family Management - Manage parish families with complete details
- π€ Member Management - Track all parish members with their information
- βοΈ Sacraments Tracking - Record and manage all sacraments (Baptism, Communion, Confirmation, Marriage)
- π° Donation Management - Track donations, generate reports, and export data
- π Dashboard - Interactive dashboard with charts and statistics
- π± Responsive Design - Works on desktop, tablet, and mobile devices
- π Export Functionality - Export data to PDF, Excel, and CSV formats
- π Search & Filter - Advanced search and filtering capabilities
- Framework: React.js 18.2.0
- Routing: React Router v6
- Styling: Custom CSS with Christian-themed design
- Charts: Recharts for data visualization
- Icons: React Icons (Io5)
- HTTP Client: Axios
- State Management: React Context API
- Forms: React Hook Form
- Date Handling: date-fns
- Server: Express.js
- Database: JSON (mock data)
- Authentication: JWT-like tokens (mock)
Before you begin, ensure you have the following installed:
- Node.js (v16 or higher)
node --version - npm (v8 or higher) or yarn
npm --version - Git (for cloning the repository)
git --version
git clone https://github.com/yourusername/parish-erp.git
cd parish-erp/frontend
npm install
# For mock backend
npm install express cors body-parser
# For development (optional)
npm install --save-dev concurrently
Open a terminal and run:
node server.js
You should see:
============================================================
π MOCK BACKEND SERVER IS RUNNING!
============================================================
π Server URL: http://localhost:5000
π TEST CREDENTIALS:
βββββββββββββββββββββββββββββββββββββββ
β Email: admin@parish.com β
β Password: password β
βββββββββββββββββββββββββββββββββββββββ€
β Email: secretary@parish.com β
β Password: secretary123 β
βββββββββββββββββββββββββββββββββββββββ
Open a new terminal and run:
npm start
The app will open automatically at http://localhost:3000
If you have concurrently installed:
npm run dev
Use these credentials to log in to the system:
| Role | Password | |
|---|---|---|
| π Admin | admin@parish.com | password |
| π Secretary | secretary@parish.com | secretary123 |
| π Priest | priest@parish.com | priest123 |
frontend/
βββ public/
β βββ index.html # Main HTML file
β βββ favicon.ico # Favicon
βββ src/
β βββ api/ # API integration layer
β β βββ axiosConfig.js # Axios configuration
β β βββ auth.js # Authentication API
β β βββ families.js # Families API
β β βββ members.js # Members API
β β βββ sacraments.js # Sacraments API
β β βββ donations.js # Donations API
β β βββ dashboard.js # Dashboard API
β βββ components/ # Reusable components
β β βββ common/ # Common UI components
β β β βββ Button/ # Button component
β β β βββ Card/ # Card component
β β β βββ Table/ # Table component
β β β βββ Modal/ # Modal component
β β β βββ Alert/ # Alert component
β β βββ layout/ # Layout components
β β β βββ Sidebar/ # Sidebar navigation
β β β βββ Header/ # Header component
β β β βββ MainLayout/ # Main layout wrapper
β β βββ dashboard/ # Dashboard specific components
β β βββ StatCard/ # Statistics card
β β βββ DonationChart/ # Donation chart
β β βββ MemberGrowthChart/ # Growth chart
β βββ context/ # React Context providers
β β βββ AuthContext.jsx # Authentication context
β β βββ AlertContext.jsx # Alert/Toast context
β βββ hooks/ # Custom React hooks
β β βββ useAuth.js # Authentication hook
β β βββ useApi.js # API call hook
β β βββ useTable.js # Table management hook
β β βββ useForm.js # Form management hook
β βββ pages/ # Page components
β β βββ auth/ # Authentication pages
β β β βββ LoginPage.jsx
β β β βββ ForgotPasswordPage.jsx
β β βββ dashboard/ # Dashboard page
β β β βββ DashboardPage.jsx
β β βββ families/ # Family management
β β β βββ FamiliesListPage.jsx
β β β βββ AddFamilyPage.jsx
β β β βββ FamilyDetailsPage.jsx
β β βββ members/ # Member management
β β β βββ MembersListPage.jsx
β β β βββ AddMemberPage.jsx
β β β βββ MemberDetailsPage.jsx
β β βββ sacraments/ # Sacraments management
β β β βββ SacramentsDashboard.jsx
β β β βββ SacramentRecordsPage.jsx
β β β βββ AddSacramentPage.jsx
β β βββ donations/ # Donations management
β β βββ DonationsListPage.jsx
β β βββ AddDonationPage.jsx
β β βββ DonationReportsPage.jsx
β βββ styles/ # CSS styles
β β βββ global.css # Global styles
β β βββ theme.css # Theme variables
β β βββ components.css # Component styles
β βββ utils/ # Utility functions
β β βββ formatters.js # Date, currency formatters
β β βββ validators.js # Form validators
β β βββ exportHelpers.js # Export utilities
β βββ App.jsx # Main App component
β βββ index.js # Entry point
βββ server.js # Mock backend server
βββ package.json # Dependencies and scripts
βββ .gitignore # Git ignore file
βββ README.md # This file
- Statistics Cards: Total families, members, donations, and sacraments
- Monthly Donations Chart: Visual representation of donations over time
- Member Growth Chart: Track parish growth trends
- Recent Activities: Latest actions in the system
- Upcoming Events: Calendar of parish events
- List View: Paginated list of all families with search
- Add Family: Create new family records
- Family Details: View complete family information
- Family Members: List of members belonging to each family
- Edit/Delete: Update or remove family records
- Member List: Comprehensive list with search and filter
- Add Member: Register new parish members
- Member Profile: Detailed member information
- Sacraments History: Track all sacraments received
- Donation History: View member donation records
- Sacrament Types: Baptism, Communion, Confirmation, Marriage
- Record Keeping: Track dates, priests, and certificate numbers
- Sacrament Dashboard: Statistics by sacrament type
- Certificate Generation: Download sacrament certificates (coming soon)
- Donation Types: Tithe, Offertory, Building, Charity, Other
- Payment Methods: Cash, Check, Online, Bank Transfer
- Reports: Monthly, quarterly, and yearly reports
- Export: Download reports in PDF, Excel, or CSV format
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/login |
User authentication |
| POST | /api/auth/logout |
User logout |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/dashboard |
Dashboard statistics |
| GET | /api/dashboard/recent-activities |
Recent activities |
| GET | /api/dashboard/upcoming-events |
Upcoming events |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/families |
List all families |
| GET | /api/families/:id |
Get family by ID |
| POST | /api/families/create |
Create new family |
| PUT | /api/families/:id |
Update family |
| DELETE | /api/families/:id |
Delete family |
| GET | /api/families/:id/members |
Get family members |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/members |
List all members |
| GET | /api/members/:id |
Get member by ID |
| POST | /api/members/create |
Create new member |
| PUT | /api/members/:id |
Update member |
| DELETE | /api/members/:id |
Delete member |
| GET | /api/members/:id/sacraments |
Get member sacraments |
| GET | /api/members/:id/donations |
Get member donations |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/sacraments/dashboard |
Sacraments dashboard |
| GET | /api/sacraments/records |
List all sacraments |
| POST | /api/sacraments/create |
Create new sacrament |
| GET | /api/sacraments/types |
Get sacrament types |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/donations |
List all donations |
| POST | /api/donations/create |
Create new donation |
| GET | /api/donations/types |
Get donation types |
| GET | /api/reports/donations/:type |
Get donation reports |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/parish |
Get parish details |
| PUT | /api/parish/update |
Update parish details |
| GET | /api/parish/mass-schedules |
Get mass schedules |
[Image: Login page with church-themed design]
[Image: Main dashboard with statistics and charts]
[Image: Families list with search and actions]
[Image: Member details with sacraments and donations]
Contributions are welcome! Here's how you can help:
-
Fork the repository
git clone https://github.com/yourusername/parish-erp.git -
Create a feature branch
git checkout -b feature/AmazingFeature -
Commit your changes
git commit -m 'Add some AmazingFeature' -
Push to the branch
git push origin feature/AmazingFeature -
Open a Pull Request
- Follow the existing code style
- Write meaningful commit messages
- Test your changes before submitting
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- St. Mary's Parish for inspiration and requirements
- React Community for amazing tools and libraries
- All Contributors who helped build this system
- Project Link: https://github.com/yourusername/parish-erp
- Report Issues: GitHub Issues
If you found this project helpful, please give it a star on GitHub! β
Built with β€οΈ for St. Mary's Parish