Skip to content

aliamarliana/nisa-period-management-webapp

Repository files navigation

🌙 Nisa: Islamic Period Tracking System

Laravel Node.js MySQL Bootstrap Status FYP Project Award License


📘 Overview

Nisa: Islamic Period Tracking System is a web-based platform designed to help Muslim women manage their monthly period cycles in a Muslim-friendly manner.
It allows adding period details, generating period reports, receiving reminders about istihadha, and accessing Islamic guidance related to menstruation and worship.

The main goal is to provide reassurance for engaging in religious activities like prayers, fasting, and Umrah while addressing daily period-tracking challenges.

This project was developed as a Final Year Project (FYP) 2023 at the College of Computing and Informatics (CCI).


🏗️ System Architecture

Layer Technology Description
Frontend Laravel Blade / HTML / CSS / Bootstrap User interface and responsive design
Backend Laravel Framework (PHP) Business logic and routing
Authentication Service Node.js Handles user registration, login, and secure authentication
Database MySQL (phpMyAdmin via XAMPP) Stores user, period, report, and knowledge data

👥 User Roles & Key Functionalities

Use case diagram for Nisa: Islamic Period Tracking System

🧑 User (Muslim Woman)

  • 🔐 Register and log in via Node.js auth service (F-1, F-2)
  • 📝 View & edit profile (F-3, F-4)
  • 🔑 Update password (F-5)
  • 🩸 Add, view, edit, delete period details (F-6, F-7, F-8, F-9)
  • 🔔 Receive period and istihadha reminders (F-10, F-11)
  • 📊 Generate period reports and track history (F-12)
  • 🔮 Predict next period cycles (ML-based prediction) (F-13)
  • 🔍 Search Islamic knowledge (F-14)
  • ❌ Delete account (F-18)
  • 🚪 Logout (F-19)

👩 Admin

  • 🔑 Login via Node.js auth service (F-2)
  • 📚 Add, edit, delete Islamic knowledge (F-15, F-16, F-17)
  • 🚪 Logout (F-19)

🗄️ Database Structure

ERD - Nisa Islamic Period Tracking System

The system consists of four main entities:

  • Each period belongs to one user, while a user can have zero or many periods.
  • Each knowledge belongs to one user, while a user can have zero or many knowledges.
  • Each period_report belongs to one period, and each period can have only one period_report.
Table Description Key Attributes
users Stores user information and login credentials user_id (PK), name, email, role, password
periods Stores period records for users period_id (PK), start_datetime, end_datetime, remarks, user_id (FK)
period_reports Stores calculated period statistics periodreport_id (PK), period_day, period_cycle, istihadha_start, istihadha_end, istihadha_day, period_id (FK), user_id (FK)
knowledges Stores Islamic knowledge content for users knowledge_id (PK), title, content, source, user_id (FK)

💡 All foreign keys enforce referential integrity.


📈 Future Enhancements

  • 🔮 ML-based Period Prediction: Replace hardcoded rules for more accurate period and istihadha predictions.
  • 📱 Mobile app integration for easier access
  • 📊 Personalized notifications and analytics
  • 📚 Enhanced Islamic guidance with multimedia content

📄 Documentation

All project documentation is available in the docs folder:

About

A web-based Islamic period tracking system for Muslim women, built with Laravel and Node.js. Developed as a Final Year Project (FYP 2023) with features including period logging, istihadha reminders, reporting, and an Islamic knowledge base.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors