A modern Flutter application that allows users to record, track, and analyze their dreams. Built with a focus on user experience and privacy.
- 📝 Record and manage your dreams
- 🔐 Secure authentication with Google Sign-in
- 🌙 Dark theme for comfortable night-time use
- 📱 Cross-platform support (iOS, Android, Web, Desktop)
- 🔒 Secure storage for sensitive data
- 🎨 Modern Material Design UI
- 🌐 Environment-based configuration
-
Web App (Coming Soon)
- Framework: Flutter/Dart
- State Management: Riverpod
- Authentication: Google Sign-in
- Storage: Flutter Secure Storage
- Network: HTTP package
- Environment: Flutter Dotenv
- Internationalization: Intl package
lib/
├── core/ # Core functionality and utilities
├── features/ # Feature-based modules
│ ├── auth/ # Authentication
│ ├── dreams/ # Dream recording and management
│ ├── profile/ # User profile
│ ├── settings/ # App settings
│ ├── feedback/ # User feedback
│ ├── about/ # About section
│ └── shared/ # Shared components
├── main.dart # Application entry point
└── routes.dart # Route definitions
- Flutter SDK (>=2.17.0)
- Dart SDK
- Android Studio / Xcode (for mobile development)
- Git
-
Clone the repository:
git clone [repository-url]
-
Navigate to the project directory:
cd dream_journal_app
-
Install dependencies:
flutter pub get
-
Create a
.env
file in the root directory with your configuration:API_URL=your_api_url GOOGLE_CLIENT_ID=your_google_client_id
-
Run the app:
flutter run
The project includes Docker support for containerized development:
# Build the Docker image
docker build -t dreami-diary .
# Run the container
docker-compose up
For Google Sign-in functionality, follow the setup instructions in:
GOOGLE_SIGNIN_SETUP.md
BACKEND_GOOGLE_SIGNIN_UPDATE.md
FIX_ANDROID_GOOGLE_SIGNIN.md
The project follows Flutter's recommended code style. Linting rules are configured in analysis_options.yaml
.
# For Android
flutter build apk
# For iOS
flutter build ios
# For Web
flutter build web
The application follows a feature-first architecture with the following key components:
- State Management: Uses Riverpod for predictable state management
- Routing: Centralized routing system in
routes.dart
- Theme: Custom dark theme implementation
- Security: Secure storage for sensitive data
- Environment: Environment variable management for configuration
- 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.
- Flutter team for the amazing framework
- All contributors who have helped shape this project
- The open-source community for their invaluable tools and packages