"Women's Health & Wellness Tracker"
π Live Demo β’ Features β’ Installation β’ Tech Stack β’ Emotional Story β’ Contributing β’ License
"Some days just feel heavier than othersβ¦
Your energy dips, your body aches, and emotions run high β but the world keeps moving like nothing's changed."
That's the reality for so many women during their cycle. And sadly, it often goes unspoken.
MyCycleCare was born out of the need to feel understood. It's not just a tracker β it's your personal wellness companion. From logging painful cramps to celebrating better days, we're here to remind you: your feelings are valid, and your health matters.
With thoughtful features like mood journaling, symptom tracking, and personalized self-care tips, MyCycleCare empowers you to stay in tune with your body β gently, beautifully, and without judgment.
β¨ Menstrual Cycle Tracker
β³ Predict periods, log flow, pain, and more.
π Mood Journal
Track emotions and mental health with visual logs.
πΏ Wellness Assistant
Receive self-care tips and period-safe wellness advice.
β€οΈ Symptom Tracker
Log cramps, nausea, bloating, acne, and fatigue.
π Analytics Dashboard
Interactive graphs to uncover body patterns and rhythm.
π‘οΈ Private & Secure
Your data, your control β privacy is our priority.
- Node.js 18+ and npm
- MongoDB (local or MongoDB Atlas)
- Git
# 1. Clone the repository
git clone https://github.com/Jani-shiv/MyCycleCare.git
cd MyCycleCare
# 2. Install frontend dependencies
npm install --legacy-peer-deps
# 3. Install backend dependencies
cd server
npm install
cd ..Create server/.env file with the following:
# REQUIRED: JWT Secret for authentication tokens
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
# Database Connection (optional, uses in-memory if not provided)
MONGO_URI=mongodb://localhost:27017/mycyclecare
# Server Configuration
PORT=5000
NODE_ENV=development
β οΈ SECURITY WARNING: Never commit.envfiles to version control. Use strong, unique JWT secrets in production.
Create .env in project root if using external APIs:
# AI Services (Optional - for Wellness Assistant)
VITE_OPENAI_API_KEY=your-openai-key
VITE_ANTHROPIC_API_KEY=your-anthropic-key# Terminal 1: Start backend server
cd server
node index.js
# Terminal 2: Start frontend development server
npm run devThe application will be available at:
- Frontend: http://localhost:5173
- Backend API: http://localhost:5000
β
Use the provided .env.example as a template
β
Never hardcode secrets in source code
β
Use strong passwords (8+ chars, upper/lower/number)
β
JWT tokens expire after 1 hour for security
π Use environment-specific secrets
π Enable HTTPS/TLS encryption
π Set NODE_ENV=production
π Use secure database connections
π Monitor rate limiting (5 auth requests per 15 minutes)
π Review Helmet.js security headers
- React 18 with TypeScript
- Vite for blazing-fast development
- Zustand for state management
- React Router for navigation
- Framer Motion for animations
- Recharts for data visualization
- Node.js with Express
- MongoDB with Mongoose
- JWT for authentication
- bcryptjs for password hashing
- Helmet for security headers
- express-rate-limit for API protection
- π Helmet.js security headers
- π¦ Rate limiting (100 req/15min, 5 auth req/15min)
- π JWT with 1-hour expiration
- β Input validation with express-validator
- π Password requirements (8+ chars, upper/lower/number)
- π Request body size limits (10MB)
MyCycleCare/
βββ src/ # Frontend source code
β βββ components/ # Reusable components
β βββ pages/ # Page components
β βββ services/ # API services
β βββ store/ # Zustand state management
β βββ types/ # TypeScript interfaces
β βββ utils/ # Utility functions
βββ server/ # Backend source code
β βββ models/ # MongoDB models
β βββ routes/ # API routes
β βββ middleware/ # Auth & validation
β βββ index.js # Server entry point
βββ package.json # Dependencies
Manual testing guide available at: chrome_testing_guide.md in the brain artifacts directory.
β
User registration with strong password
β
User login/logout
β
Cycle tracking (add/edit/delete)
β
Mood journal entries
β
Dashboard analytics
β
Settings & preferences
β
Authentication token expiration
We welcome contributions! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Follow existing code style and TypeScript types
- Test your changes thoroughly
- Commit with clear messages (
git commit -m 'Add some AmazingFeature') - Push to your branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with love to support women's health awareness and wellness. Thank you to all contributors and supporters of this project.
Made with π for women's wellness
