Getting Started
Set up the Everything App for local development in under 5 minutes.
Prerequisites
| Tool | Version | Notes |
|---|---|---|
| Flutter SDK | โฅ 3.10.0 | Includes Dart โฅ 3.0.0 |
| Android Studio / Xcode | Latest | For device emulators |
| Git | Any recent | For cloning the repo |
| Firebase CLI | Latest | Optional โ for Firebase features |
Installation
1. Clone the Repository
# Clone
git clone https://github.com/sauravbhattacharya001/everything.git
cd everything
2. Install Dependencies
flutter pub get
3. Run the App
# Run on connected device or emulator
flutter run
# Run on web
flutter run -d chrome
# Run on specific device
flutter devices # List available devices
flutter run -d <device>
๐ก Non-Firebase mode
The app works without Firebase configured โ auth features will be unavailable, but event management and local storage still function.
Firebase Setup (Optional)
To enable authentication features:
- Create a project in the Firebase Console
- Enable Email/Password authentication in the Authentication section
- Register your app (Android: add
google-services.json, iOS: addGoogleService-Info.plist) - For web: add Firebase config in
web/index.html
Environment Variables
API keys should never be hardcoded. Use Dart's --dart-define mechanism:
# Run with API key
flutter run --dart-define=GOOGLE_API_KEY=your_key_here
# Or create a .env file (requires flutter_dotenv)
GOOGLE_API_KEY=your_key_here
Running with Docker
The repo includes a Dockerfile for containerized builds:
# Build the Docker image
docker build -t everything-app .
# Run it
docker run -p 8080:80 everything-app
# Or pull from GHCR
docker pull ghcr.io/sauravbhattacharya001/everything:latest
Project Structure
everything/
โโโ lib/
โ โโโ main.dart # App entry + AuthGate widget
โ โโโ core/
โ โ โโโ constants/ # AppConstants (URLs, schemes, hosts)
โ โ โโโ services/ # AuthService, EventService, GraphService
โ โ โโโ utils/ # HttpUtils (SSRF-safe), DateUtils
โ โโโ data/
โ โ โโโ local_storage.dart # SQLite singleton (v4 schema)
โ โ โโโ repositories/ # EventRepository, UserRepository
โ โโโ models/
โ โ โโโ event_model.dart # EventModel + EventPriority enum
โ โ โโโ event_tag.dart # EventTag with color palette
โ โ โโโ recurrence_rule.dart # RecurrenceRule + frequency enum
โ โ โโโ user_model.dart # UserModel
โ โโโ state/
โ โ โโโ blocs/ # EventBloc (Cubit-based)
โ โ โโโ providers/ # EventProvider, UserProvider
โ โโโ views/
โ โโโ home/ # HomeScreen, EventDetailScreen, StatsScreen
โ โโโ login/ # LoginScreen
โ โโโ widgets/ # EventCard, EventFormDialog, UserAvatar
โโโ test/ # Unit & widget tests
โโโ docs/ # Documentation site (GitHub Pages)
โโโ .github/ # CI, CodeQL, Docker, Pages workflows
โโโ pubspec.yaml # Dependencies
โโโ Dockerfile # Container build
โโโ CONTRIBUTING.md # Contributor guide