PurePath is a web application designed to help users break free from unwanted habits like PMO and build a life of purpose through community support, guided meditations, and progress tracking.
This project is built with modern web technologies:
- Vite - Fast, opinionated frontend build tool
- React - UI component library
- TypeScript - Type-safe JavaScript
- React Router - Client-side routing
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - Accessible UI components
- Firebase - Authentication and backend services
- Framer Motion - Animation library
- Tanstack Query - Data fetching and state management
- Recharts - Composable charting library
- 🔒 User Authentication: Secure login and account management
- 📈 Habit Tracking: Monitor your progress with streak tracking and daily check-ins
- ✅ Daily Tasks: Complete guided activities to stay on track and build positive habits
- 🧘 Mindfulness Resources: Access specialized meditations, breathing exercises, and visualizations
- 📝 Journal: Document your journey with guided prompts and reflections
- 🌊 Urge Management: Tools like "urge surfing" to navigate difficult moments
- 🌍 Community Support: Connect with others on the same journey through chat and global map
- 📊 Visual Analytics: Track your progress with detailed statistics and charts
- 🆘 Emergency Support: Get immediate help during moments of weakness
- 📱 Responsive Design: Seamlessly use the app across all devices
- 🎯 Daily Scripture: Find inspiration in daily Bible verses
- 🔄 Customizable Dashboard: Personalize your experience with the tools you need most
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Node.js (v16 or higher)
- npm, yarn, or pnpm
-
Clone the repository:
git clone https://github.com/yourusername/purepath.git cd purepath
-
Install dependencies:
npm install # or yarn install # or pnpm install
-
Configure Firebase:
- Create a Firebase project at Firebase Console
- Enable Authentication and Firestore
- Create a web app in your Firebase project
- Copy the configuration values from your Firebase project settings
-
Create a
.env
file in the root directory with your Firebase configuration:VITE_FIREBASE_API_KEY=your-firebase-api-key VITE_FIREBASE_AUTH_DOMAIN=your-firebase-auth-domain VITE_FIREBASE_PROJECT_ID=your-firebase-project-id VITE_FIREBASE_STORAGE_BUCKET=your-firebase-storage-bucket VITE_FIREBASE_MESSAGING_SENDER_ID=your-firebase-messaging-sender-id VITE_FIREBASE_APP_ID=your-firebase-app-id VITE_FIREBASE_MEASUREMENT_ID=your-firebase-measurement-id
You can use the
.env.sample
file as a template. Note: Enable email/pwd authentication in your firebase console. -
Start the development server:
npm run dev # or yarn dev # or pnpm dev
-
Open your browser and navigate to
http://localhost:8080
npm run build
# or
yarn build
# or
pnpm build
purepath/
├── public/ # Static assets
├── src/
│ ├── components/ # Reusable UI components
│ │ └── ui/ # shadcn/ui components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utility functions
│ ├── pages/ # Page components
│ ├── utils/ # Helper functions and Firebase setup
│ ├── App.tsx # Main App component with routing
│ └── main.tsx # Entry point
├── .env.sample # Sample environment variables
└── README.md # Project documentation
This application uses Firebase Authentication for user management. Users can:
- Register with email and password
- Log in with existing credentials
- Access protected routes (dashboard, profile, etc.)
- Admin users have access to additional