A web application that helps me and my friends track and share emotional wellbeing.
- Create and join private support groups
- Track daily moods and emotional states
- Add context and notes to your entries
- View patterns in your emotional journey
- Manage group memberships and roles
- Get real-time updates on group activity
- Spotify intergation to choose "Song of the day"
- Automated email notification upon leaving the rating
- Frontend: React with TypeScript
- UI Framework: Material-UI (MUI) components
- Authentication: Firebase Auth with Google sign-in
- Database: Firebase Realtime Database
- Hosting: Firebase Hosting
- State Management: React Context API
- Routing: React Router v7
- Clean, minimalist interface focused on ease of use
- Fully responsive design for all devices
- Real-time updates and notifications
- Secure and private group spaces
- Intuitive mood tracking and visualization
- Node.js (v16 or higher)
- npm or yarn
- Firebase account
- Git
-
Clone the repository:
git clone https://github.com/yourusername/howufeel.git cd howufeel -
Install dependencies:
npm install
-
Set up environment variables:
- Copy
.env.exampleto.env - Update the values with your Firebase project credentials
- For local development, copy
.env.exampleto.env.development
- Copy
-
Start the development server:
npm run dev
The application requires several environment variables to be set. See .env.example for the required variables:
- Firebase Configuration: Required for authentication and database access
- Emulator Configuration: Optional, for local development with Firebase emulators
-
Local Development
# Start development server npm run dev # Start with Firebase emulators npm run dev:full
-
Testing
# Run all tests npm test # Run security rules tests npm run test:rules
-
Building for Production
npm run build
- Create a new Firebase project
- Enable Authentication with Google sign-in
- Set up Firestore Database
- Configure Firebase Hosting
- Copy your Firebase configuration to your environment files
- Fork the repository
- Create your 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 MIT License - see the LICENSE file for details.
