A modern React web application providing consultation services and health tracking solutions for women's healthcare.
Gender Healthcare System is a comprehensive web application designed to support women in managing their reproductive health. The system provides features for menstrual cycle tracking, birth control pill reminders, STI testing appointments, online consultations, and personal health information management.
- π Menstrual Cycle Tracking: Calculate and predict cycles, ovulation timing
- π Birth Control Pill Management: Reminders and tracking for pill schedules
- π§ͺ STI Testing Appointments: Book appointments and track test results
- π©ββοΈ Online Consultations: Schedule consultations with healthcare experts
- β Professional Q&A: Ask questions and receive medical advice from doctors
- π Health Blog: Read articles about women's health
- π³ Online Payment: Support for VNPay and PayPal payment methods
- π Overview Dashboard: Track appointments, reviews, and statistics
- π Appointment Management: View and manage consultation sessions
- βοΈ Blog Management: Write and manage professional articles
- π¬ Question Answering: Support and answer customer inquiries
- β Review Management: View feedback from customers
- π€ Professional Profile: Manage information and certifications
- π Appointment Management: Handle testing and consultation appointments
- π Reports: Generate and export activity reports
- π₯ Staff Management: Manage employee and consultant accounts
- π₯ Service Management: Manage testing services
- β Blog Approval: Review and approve articles before publication
- π Statistics & Reports: View overview reports and revenue
- β Review Management: Monitor customer feedback
- π οΈ System Management: Manage all users in the system
- π§ System Configuration: Configure and maintain the system
- React 18: JavaScript library for building user interfaces
- Vite: Modern and fast build tool
- Ant Design: UI component library
- React Router Dom: Routing management
- Axios: HTTP client for API calls
- Tailwind CSS: Utility-first CSS framework
- Chart.js: Chart library
- Day.js: Date manipulation library
- React Markdown: Render markdown content
- ESLint: JavaScript/JSX linting
- React Icons: Icon library
- HTML2Canvas & jsPDF: Export PDF functionality
- XLSX: Export Excel files
- File Saver: Download files
- Spring Boot 3.5.0: Enterprise Java application framework
- Java 21: Latest LTS version with modern language features
- Maven: Dependency management and build automation
- Spring Security: Comprehensive security framework
- JWT (JSON Web Tokens): Stateless authentication
- OAuth2: Third-party authentication integration
- BCrypt: Password hashing and encryption
- Microsoft SQL Server: Enterprise-grade relational database
- Spring Data JPA: Data access abstraction layer
- Hibernate: Object-relational mapping framework
- Connection Pooling: Optimized database connections
- VNPay API: Vietnamese payment gateway
- PayPal SDK: International payment processing
- Google APIs: Calendar and OAuth2 services
- Cloudinary: Cloud-based media management
- SMTP: Email service integration
- Postman: API testing and documentation
- Swagger/OpenAPI: API documentation and interactive testing
- Git: Version control system
- Node.js >= 16.0.0
- npm or yarn
- Java 21 or higher
- Maven 3.8+ (or use included Maven wrapper)
- Microsoft SQL Server
- Internet connection for third-party services
# Clone repository
git clone <repository-url>
cd GenderHealthCareSystem
# Install dependencies
npm install
# Or using yarn
yarn install# Run development server
npm run dev
# Or
yarn devApplication will run at http://localhost:5173
# Build application
npm run build
# Preview build
npm run preview# Run ESLint
npm run lintThe system supports 5 types of accounts:
- Customer: Service users
- Consultant: Healthcare consultants/Doctors
- Staff: Employees
- Manager: Management personnel
- Admin: System administrators
Each role has different access permissions to system features.
The Gender Healthcare System follows a modern Front-End architecture:
- Single Page Application (SPA): Built with React 18 and Vite
- Component-based architecture: Reusable and maintainable UI components
- State management: Context API for global state management
- Responsive design: Mobile-first approach with Tailwind CSS
- Responsive Design: Compatible with all devices
- Accessibility: Compliant with accessibility standards
- Loading States: Visual feedback for users
- Error Handling: User-friendly error handling
- Form Validation: Comprehensive form validation
The backend follows a clean, layered architecture pattern:
- Controller Layer: REST API endpoints and request handling
- Service Layer: Business logic and transaction management
- Repository Layer: Data access and database operations
- Model Layer: JPA entities and database mapping
- DTO Layer: Data transfer objects for API communication
- Configuration Layer: Spring Boot configurations and integrations
- Authentication: Login, registration, password management
- Healthcare Services: Menstrual tracking, pill management, STI services
- Consultation: Doctor booking and consultation management
- Content Management: Blog posts, comments, Q&A system
- Payment Processing: VNPay and PayPal integration
- User Management: Profile management and user administration
- Core Services: Authentication, user management, healthcare tracking
- Integration Services: Payment gateways, email, calendar, cloud storage
- Reminder Services: Automated notifications and scheduling
- Analytics Services: Reporting and dashboard data
- JWT Authentication: Stateless token-based authentication
- Role-based Authorization: Different access levels for users
- CORS Configuration: Cross-origin resource sharing setup
- OAuth2 Integration: Google authentication support
- Password Encryption: Secure password hashing
- Login Request: User submits credentials
- Validation: Credentials verified against database
- Token Generation: JWT token created with user claims
- Token Response: Client receives access and refresh tokens
- Request Authorization: Subsequent requests include JWT token
- Token Validation: Server validates token on each request
- Customer: Basic healthcare services access
- Consultant: Healthcare provider capabilities
- Staff: Administrative functions
- Manager: Management and reporting features
- Admin: Full system administration
- Users: User account information
- Account: Authentication and role management
- ProfileDetail: Extended user profile information
- Role: User role definitions
- MenstrualCycle: Cycle tracking data
- Pills: Medication information
- PillSchedule: Medication schedules and reminders
- ConsultationBooking: Doctor consultation appointments
- StisBooking: STI testing appointments
- StisResult: STI test results
- BlogPost: Health article content
- Comment: Blog post comments
- Question: Q&A questions
- QuestionComment: Q&A answers and responses
- Invoice: Payment and billing records
- ConsultantFeedback: Doctor reviews and ratings
- StisFeedback: STI service feedback
π Production Server: http://14.225.192.28/
This project was developed for educational purposes in the SWP391 course.
Project developed by student team in SWP391 course.
Gender Healthcare System - Comprehensive and modern women's healthcare solutions π