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.
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.
- 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
- Secure login system with JWT-based authentication
- Role-based access control (Admin, Caregiver, Family)
- Password reset functionality
- Protected routes for each user type
- Complete resident profile management
- Medical history tracking
- Medication schedules and management
- Deactivated resident records
- Add, update, and remove caregivers
- Assign caregivers to specific residents
- Assign caregivers to events
- Track caregiver schedules and assignments
- Detailed medical record creation and editing
- Medical history tracking with audit trail
- Medication management with dosage and timing
- Role-specific access to medical information
- Create and manage elder home events
- Assign caregivers to events
- Event reports and analytics
- Event scheduling and coordination
- Family visit request system
- Visit scheduling and approval
- Visit history tracking
- Financial contribution tracking
- Non-financial contribution logging
- Contribution reports and analytics
- Admin oversight of all contributions
- Dashboard analytics
- Comprehensive reports generation (PDF)
- Data visualization with charts
- Performance metrics
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
- 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
- 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
- ESLint - Code linting
- Nodemon - Auto-restart during development
- PostCSS - CSS processing
Ensure you have the following installed:
- Node.js (v14 or higher)
- MongoDB (local installation or MongoDB Atlas account)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/metharafonseka/EverCare-Elder-Home-Management-System.git cd EverCare-Elder-Home-Management-System -
Set up the Backend
cd backend npm install -
Configure Environment Variables
Create a
.envfile in thebackenddirectory 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
-
Set up the Frontend
cd ../frontend npm install
-
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 -
Start the Frontend Development Server
cd frontend npm run devThe frontend will run on
http://localhost:5173(default Vite port) -
Access the Application
Open your browser and navigate to
http://localhost:5173
(Add screenshots of your application here to showcase the UI)
- 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
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
Contributions are welcome! If you'd like to contribute to EverCare:
- Fork the repository
- 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
This project is licensed under the ISC License.
Methara Fonseka
- GitHub: @metharafonseka
Special thanks to all contributors and the open-source community for the amazing tools and libraries that made this project possible.
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. β€οΈ