A full-stack Dart & Flutter notes application built on Globe, showcasing authentication, database, and AI features (coming soon!).
Recall serves multiple purposes:
- Globe Platform Showcase: Demonstrates Globe DB, Globe Platform (hosting), and various Globe features
- Educational Resource: Teaches Dart and Flutter developers about full-stack Dart development
- Reference Implementation: Provides a working example of a complete platform with backend and frontend
- Frontend: https://recall.globeapp.dev
- Backend API: https://recall-api.globeapp.dev
This is a monorepo containing three main components:
recall/
βββ apps/
β βββ backend/ # Dart Frog API server
β βββ frontend/ # Flutter web application
βββ packages/
βββ common/ # Shared models and DTOs
Backend:
- Dart Frog - Web framework for Dart
- Drift - Type-safe ORM for database operations
- Globe DB - Cloud database (SQLite for local development)
- OAuth 2.0 authentication (Google & GitHub)
Frontend:
- Flutter - UI framework
- Riverpod - State management
- Go Router - Navigation
- Flutter Quill - Rich text editor
Shared:
- Dart Mappable - Code generation
- Luthor - Schema validation
- Dart SDK ^3.9.0
- Flutter SDK ^3.9.0
- Git
git clone https://github.com/invertase/recall.git
cd recall
# Install dependencies for each package individually
# Backend dependencies
cd apps/backend
dart pub get
# Frontend dependencies
cd ../frontend
flutter pub get
# Common package dependencies
cd ../../packages/common
dart pub get
# Return to root
cd ../..
Before setting up environment variables, you need to configure OAuth applications with GitHub and Google.
- Go to GitHub Developer Settings
- Click OAuth Apps β New OAuth App
- Fill out the form:
- Application name: Recall App
- Homepage URL:
http://localhost:8080
- Authorization callback URL:
http://localhost:8080/auth/github/callback
- Click Register application
- Copy your Client ID and generate a Client Secret
- Go to Google Cloud Console
- Create a new project or select existing one
- Navigate to APIs & Services β Credentials
- Click + CREATE CREDENTIALS β OAuth client ID
- Configure the OAuth consent screen if prompted
- Select Web application as the application type
- Add Authorized redirect URI:
http://localhost:8080/auth/google/callback
- Click CREATE and copy your Client ID and Client Secret
Create a .env
file in the apps/backend/
directory:
# Server Configuration
BASE_URL=http://localhost:8080
CLIENT_URL=http://localhost:3000
# OAuth Configuration
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
# JWT Configuration
JWT_SECRET=your_jwt_secret_key
cd apps/backend
dart_frog dev
The API will be available at http://localhost:8080
cd apps/frontend
flutter run -d web-server --web-port 3000
The app will be available at http://localhost:3000
cd apps/backend
dart test
cd apps/frontend
flutter test
cd packages/common
dart test
The backend is deployed on Globe Platform at https://recall-api.globeapp.dev
The frontend is deployed on Globe Platform at https://recall.globeapp.dev
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes
- Run tests:
dart test
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
- Authentication: OAuth 2.0 with Google and GitHub
- Notes Management: Create, read, update, delete notes
- Rich Text Editor: Powered by Flutter Quill
- Responsive Design: Works on desktop and mobile
- Dark/Light Theme: Theme switching support
- Cross-Device Sync: Notes sync across devices via API
- User Management: Profile management with OAuth providers
- AI Features: AI-powered note assistance
- Collaboration: Share notes with other users
- Export/Import: Export notes in various formats
- Search: Full-text search across notes
- Categories: Organize notes with tags and categories
- Globe DB: Cloud database with local SQLite development
- Globe Platform: Seamless deployment and hosting
- Authentication: OAuth integration
- API Management: RESTful API with Dart Frog
- API Integration: RESTful API for data synchronization
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Globe platform
- Powered by Dart Frog
- UI components from Flutter
- Database powered by Globe DB
- Documentation: Globe Docs
- Community: Globe Discord
- Issues: GitHub Issues
- Email: [email protected]
Recall - Built with β€οΈ by the Globe team