Skip to content

Omega-Xi/Parish-ERP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

β›ͺ St. Mary's Parish Management System

A comprehensive Parish ERP system for managing church operations including families, members, sacraments, donations, and more.

License: MIT React Node

πŸ“‹ Table of Contents

✨ Features

  • πŸ” 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

πŸ› οΈ Tech Stack

Frontend

  • 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

Backend (Mock)

  • Server: Express.js
  • Database: JSON (mock data)
  • Authentication: JWT-like tokens (mock)

πŸ“‹ Prerequisites

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
    

πŸš€ Installation

1. Clone the repository

git clone https://github.com/yourusername/parish-erp.git
cd parish-erp/frontend

2. Install dependencies

npm install

3. Install additional dependencies (if needed)

# For mock backend
npm install express cors body-parser

# For development (optional)
npm install --save-dev concurrently

πŸƒ Running the Application

Start the Mock Backend Server

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              β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Start the React Application

Open a new terminal and run:

npm start

The app will open automatically at http://localhost:3000

Run Both Servers Simultaneously (Optional)

If you have concurrently installed:

npm run dev

πŸ”‘ Test Credentials

Use these credentials to log in to the system:

Role Email Password
πŸ‘‘ Admin admin@parish.com password
πŸ“ Secretary secretary@parish.com secretary123
πŸ™ Priest priest@parish.com priest123

πŸ“ Project Structure

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

🎯 Features Overview

1. Dashboard

  • 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

2. Family Management

  • 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

3. Member Management

  • 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

4. Sacraments Management

  • 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)

5. Donations Management

  • 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

πŸ”Œ API Endpoints

Authentication

Method Endpoint Description
POST /api/auth/login User authentication
POST /api/auth/logout User logout

Dashboard

Method Endpoint Description
GET /api/dashboard Dashboard statistics
GET /api/dashboard/recent-activities Recent activities
GET /api/dashboard/upcoming-events Upcoming events

Families

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

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

Sacraments

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

Donations

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

Parish

Method Endpoint Description
GET /api/parish Get parish details
PUT /api/parish/update Update parish details
GET /api/parish/mass-schedules Get mass schedules

πŸ“Έ Screenshots

Login Page

[Image: Login page with church-themed design]

Dashboard

[Image: Main dashboard with statistics and charts]

Families List

[Image: Families list with search and actions]

Member Profile

[Image: Member details with sacraments and donations]

🀝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository

    git clone https://github.com/yourusername/parish-erp.git
    
  2. Create a feature branch

    git checkout -b feature/AmazingFeature
    
  3. Commit your changes

    git commit -m 'Add some AmazingFeature'
    
  4. Push to the branch

    git push origin feature/AmazingFeature
    
  5. Open a Pull Request

Development Guidelines

  • Follow the existing code style
  • Write meaningful commit messages
  • Test your changes before submitting
  • Update documentation as needed

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • St. Mary's Parish for inspiration and requirements
  • React Community for amazing tools and libraries
  • All Contributors who helped build this system

πŸ“ž Contact

⭐ Show Your Support

If you found this project helpful, please give it a star on GitHub! ⭐


Built with ❀️ for St. Mary's Parish

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors