Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

40 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏑 EverCare - Elder Home Management System

A comprehensive full-stack web application designed to streamline and enhance the management of elder care facilities. EverCare provides a complete solution for managing residents, caregivers, medical records, events, and family contributions.


πŸ“‹ Project Overview

EverCare is a modern elder home management system that facilitates seamless communication and coordination between administrators, caregivers, and family members. The platform offers role-based access control, ensuring that each user type has access to the appropriate features and information.

πŸ‘₯ User Roles

  • Administrators/Owners: Full system access, manage caregivers, residents, and oversee all operations
  • Caregivers: Manage assigned residents, update medical records, handle daily care tasks
  • Family Members: Track resident information, schedule visits, make contributions, view medical updates

✨ Key Features

πŸ” Authentication & Authorization

  • Secure login system with JWT-based authentication
  • Role-based access control (Admin, Caregiver, Family)
  • Password reset functionality
  • Protected routes for each user type

πŸ‘΄ Resident Management

  • Complete resident profile management
  • Medical history tracking
  • Medication schedules and management
  • Deactivated resident records

πŸ‘¨β€βš•οΈ Caregiver Management

  • Add, update, and remove caregivers
  • Assign caregivers to specific residents
  • Assign caregivers to events
  • Track caregiver schedules and assignments

πŸ₯ Medical Records & Medications

  • Detailed medical record creation and editing
  • Medical history tracking with audit trail
  • Medication management with dosage and timing
  • Role-specific access to medical information

πŸ“… Event Management

  • Create and manage elder home events
  • Assign caregivers to events
  • Event reports and analytics
  • Event scheduling and coordination

πŸ‘¨β€πŸ‘©β€πŸ‘§ Visit Management

  • Family visit request system
  • Visit scheduling and approval
  • Visit history tracking

πŸ’° Contribution Management

  • Financial contribution tracking
  • Non-financial contribution logging
  • Contribution reports and analytics
  • Admin oversight of all contributions

πŸ“Š Statistics & Reporting

  • Dashboard analytics
  • Comprehensive reports generation (PDF)
  • Data visualization with charts
  • Performance metrics

πŸ—‚οΈ Project Structure

EverCare/
β”‚
β”œβ”€β”€ backend/                          # Node.js/Express backend server
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── db.js                     # MongoDB connection configuration
β”‚   β”œβ”€β”€ controllers/                  # Business logic controllers
β”‚   β”‚   β”œβ”€β”€ authController.js
β”‚   β”‚   β”œβ”€β”€ caregiverController.js
β”‚   β”‚   β”œβ”€β”€ eventController.js
β”‚   β”‚   β”œβ”€β”€ medicalRecordController.js
β”‚   β”‚   β”œβ”€β”€ medicationController.js
β”‚   β”‚   β”œβ”€β”€ visitRequestController.js
β”‚   β”‚   └── ... (other controllers)
β”‚   β”œβ”€β”€ middleware/
β”‚   β”‚   └── authMiddleware.js         # JWT authentication middleware
β”‚   β”œβ”€β”€ models/                       # MongoDB/Mongoose schemas
β”‚   β”‚   β”œβ”€β”€ User.js
β”‚   β”‚   β”œβ”€β”€ Resident.js
β”‚   β”‚   β”œβ”€β”€ Caregiver.js
β”‚   β”‚   β”œβ”€β”€ Event.js
β”‚   β”‚   β”œβ”€β”€ medicalRecord.js
β”‚   β”‚   β”œβ”€β”€ medication.js
β”‚   β”‚   └── ... (other models)
β”‚   β”œβ”€β”€ routes/                       # API route definitions
β”‚   β”‚   β”œβ”€β”€ authRoutes.js
β”‚   β”‚   β”œβ”€β”€ caregiverRoutes.js
β”‚   β”‚   β”œβ”€β”€ residentRoutes.js
β”‚   β”‚   β”œβ”€β”€ eventRoutes.js
β”‚   β”‚   └── ... (other routes)
β”‚   β”œβ”€β”€ uploads/                      # File upload directory
β”‚   β”œβ”€β”€ server.js                     # Main server entry point
β”‚   β”œβ”€β”€ hashPassword.js               # Password hashing utility
β”‚   β”œβ”€β”€ resetAdministration.js        # Admin reset utilities
β”‚   └── package.json
β”‚
└── frontend/                         # React/Vite frontend application
    β”œβ”€β”€ public/                       # Static assets
    β”œβ”€β”€ src/
    β”‚   β”œβ”€β”€ assets/                   # Images and resources
    β”‚   β”œβ”€β”€ audio/                    # Audio files
    β”‚   β”œβ”€β”€ components/               # Reusable React components
    β”‚   β”‚   β”œβ”€β”€ AdminDashboard.jsx
    β”‚   β”‚   β”œβ”€β”€ AdminLayout.jsx
    β”‚   β”‚   β”œβ”€β”€ CaregiverLayout.jsx
    β”‚   β”‚   β”œβ”€β”€ FamilyLayout.jsx
    β”‚   β”‚   β”œβ”€β”€ Header.jsx
    β”‚   β”‚   β”œβ”€β”€ LoginForm.jsx
    β”‚   β”‚   β”œβ”€β”€ ProtectedRoute.jsx
    β”‚   β”‚   └── ... (other components)
    β”‚   β”œβ”€β”€ pages/                    # Page components
    β”‚   β”‚   β”œβ”€β”€ ChooseUserPage.jsx
    β”‚   β”‚   β”œβ”€β”€ LoginOwnerPage.jsx
    β”‚   β”‚   β”œβ”€β”€ LoginCaregiverPage.jsx
    β”‚   β”‚   β”œβ”€β”€ LoginFamilyPage.jsx
    β”‚   β”‚   β”œβ”€β”€ AddCaregiver.jsx
    β”‚   β”‚   β”œβ”€β”€ EventCRUD.jsx
    β”‚   β”‚   β”œβ”€β”€ MedicalRecordAdd.jsx
    β”‚   β”‚   β”œβ”€β”€ MedicationAdd.jsx
    β”‚   β”‚   β”œβ”€β”€ financial.jsx
    β”‚   β”‚   β”œβ”€β”€ nonFinancial.jsx
    β”‚   β”‚   └── ... (other pages)
    β”‚   β”œβ”€β”€ App.jsx                   # Main App component with routing
    β”‚   β”œβ”€β”€ main.jsx                  # React entry point
    β”‚   β”œβ”€β”€ App.css                   # Global styles
    β”‚   └── index.css                 # Base styles
    β”œβ”€β”€ index.html
    β”œβ”€β”€ vite.config.js                # Vite configuration
    β”œβ”€β”€ tailwind.config.js            # Tailwind CSS configuration
    β”œβ”€β”€ postcss.config.js             # PostCSS configuration
    └── package.json

πŸ› οΈ Technologies Used

Backend

  • Node.js - JavaScript runtime environment
  • Express.js - Web application framework
  • MongoDB - NoSQL database
  • Mongoose - MongoDB object modeling
  • JWT (jsonwebtoken) - Authentication and authorization
  • bcryptjs - Password hashing
  • express-validator - Request validation
  • cors - Cross-origin resource sharing
  • express-fileupload - File upload handling
  • nodemailer - Email notifications
  • node-cron - Task scheduling
  • moment-timezone - Date/time handling
  • dotenv - Environment variable management

Frontend

  • React 19 - UI library
  • Vite - Build tool and dev server
  • React Router DOM - Client-side routing
  • Axios - HTTP client
  • Tailwind CSS - Utility-first CSS framework
  • Chart.js & react-chartjs-2 - Data visualization
  • jsPDF & jspdf-autotable - PDF generation
  • React Icons - Icon library
  • React Datepicker - Date selection component
  • jwt-decode - JWT token decoding
  • Heroicons - SVG icon library

Development Tools

  • ESLint - Code linting
  • Nodemon - Auto-restart during development
  • PostCSS - CSS processing

πŸš€ Getting Started

Prerequisites

Ensure you have the following installed:

  • Node.js (v14 or higher)
  • MongoDB (local installation or MongoDB Atlas account)
  • npm or yarn package manager

Installation

  1. Clone the repository

    git clone https://github.com/metharafonseka/EverCare-Elder-Home-Management-System.git
    cd EverCare-Elder-Home-Management-System
  2. Set up the Backend

    cd backend
    npm install
  3. Configure Environment Variables

    Create a .env file in the backend directory with the following variables:

    PORT=5000
    MONGO_URI=your_mongodb_connection_string
    JWT_SECRET=your_jwt_secret_key
    EMAIL_USER=your_email@example.com
    EMAIL_PASS=your_email_password
  4. Set up the Frontend

    cd ../frontend
    npm install

Running the Application

  1. Start the Backend Server

    cd backend
    npm start
    # or for development with auto-reload
    nodemon server.js

    The backend server will run on http://localhost:5000

  2. Start the Frontend Development Server

    cd frontend
    npm run dev

    The frontend will run on http://localhost:5173 (default Vite port)

  3. Access the Application

    Open your browser and navigate to http://localhost:5173


πŸ“Έ Screenshots

(Add screenshots of your application here to showcase the UI)


πŸ”’ Security Features

  • JWT-based authentication with secure token storage
  • Password hashing using bcryptjs
  • Protected API routes with middleware
  • Role-based access control
  • Input validation and sanitization
  • Secure file upload handling

πŸ“ API Documentation

The backend exposes RESTful APIs for all operations. Key endpoints include:

  • Auth: /api/auth/* - User authentication
  • Residents: /api/residents/* - Resident management
  • Caregivers: /api/caregivers/* - Caregiver operations
  • Events: /api/events/* - Event management
  • Medical Records: /api/medical-records/* - Medical data
  • Medications: /api/medications/* - Medication tracking
  • Visits: /api/visit-requests/* - Visit management
  • Contributions: /api/financial-contributions/*, /api/non-financial-contributions/*
  • Statistics: /api/stats/* - Analytics and reports

🀝 Contributing

Contributions are welcome! If you'd like to contribute to EverCare:

  1. Fork the repository
  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

πŸ“„ License

This project is licensed under the ISC License.


πŸ‘¨β€πŸ’» Author

Methara Fonseka


πŸ™ Acknowledgments

Special thanks to all contributors and the open-source community for the amazing tools and libraries that made this project possible.


πŸ’¬ Closing Note

EverCare was built with a mission to improve the quality of care and management in elder care facilities. By providing an intuitive, comprehensive platform, we aim to help administrators, caregivers, and families work together more effectively to ensure the best possible care for our elderly residents.

Whether you're managing a small care home or a large facility, EverCare adapts to your needs and helps you focus on what matters most - caring for people.

Thank you for using EverCare! Together, we can make elder care better. ❀️

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages