A modern Flutter application that provides an intelligent coding assistant powered by Google's Gemini AI. Propal helps developers with coding questions, debugging, and programming guidance through a beautiful, secure interface.
- AI-Powered Coding Assistant: Get instant help with coding questions using Google's Gemini AI
- Secure Authentication: Biometric authentication (fingerprint/face ID) support
- Chat History: Persistent chat sessions with secure local storage
- User Profile Management: Customizable user profiles with profile pictures
- Modern UI: Dark theme with beautiful animations and smooth transitions
- Copy Functionality: Easily copy AI responses to clipboard
- Cross-Platform: Works on Android, iOS, and other Flutter-supported platforms
- Profile Setup: Create your profile with a custom profile picture
- Biometric Authentication: Secure access with fingerprint or face ID
- Settings: Toggle biometric authentication and update profile
- Modern Chat UI: Clean, dark interface optimized for coding discussions
- Session Management: Create and manage multiple chat sessions
- Copy Responses: One-click copying of AI responses
- Loading Animations: Smooth loading indicators during AI processing
- Frontend: Flutter 3.3.0+
- AI Integration: Google Gemini AI API
- Authentication: Local authentication with biometric support
- Storage: Encrypted shared preferences for secure data storage
- State Management: Built-in Flutter state management
- Animations: Lottie animations for enhanced UX
dependencies:
flutter: sdk: flutter
cupertino_icons: ^1.0.6
lottie: ^3.1.0
google_generative_ai: ^0.4.7
flutter_markdown: ^0.6.20+1
iconsax: ^0.0.8
google_fonts: ^6.2.1
encrypt_shared_preferences: ^0.9.9
flutter_dotenv: ^5.1.0
shared_preferences: ^2.2.2
local_auth: ^2.1.7
image_picker: ^1.0.7
cached_network_image: ^3.3.1
uuid: ^4.0.0- Flutter SDK: Install Flutter 3.3.0 or higher
- Dart SDK: Comes with Flutter
- Google AI API Key: Get your API key from Google AI Studio
-
Clone the repository
git clone https://github.com/yourusername/propal.git cd propal -
Install dependencies
flutter pub get
-
Configure Environment Variables
# Copy the example environment file cp assets/creds/.env.example assets/creds/.env # Edit the .env file and add your Google AI API key # assets/creds/.env API_KEY=your_google_ai_api_key_here
-
Platform-specific Setup
- Minimum SDK version: 21
- Target SDK version: 34
- Biometric authentication requires Android 6.0+
- Minimum iOS version: 11.0
- Biometric authentication requires iOS 11.0+
- Update
ios/Runner/Info.plistfor biometric permissions:
<key>NSFaceIDUsageDescription</key> <string>This app uses Face ID for secure authentication</string>
-
Run the application
flutter run
- Visit Google AI Studio
- Sign in with your Google account
- Create a new API key
- Copy the API key to your
.envfile
Create assets/creds/.env file with:
API_KEY=your_google_ai_api_key_here.env file to version control. It's already added to .gitignore.
lib/
βββ main.dart # App entry point
βββ models/
β βββ user.dart # User model
β βββ chat_model.dart # Chat message and session models
βββ pages/
β βββ login_page.dart # User registration and profile setup
β βββ biometric_auth_page.dart # Biometric authentication
β βββ home_page.dart # Main chat interface
β βββ settings_page.dart # User settings
βββ services/
β βββ auth_service.dart # Authentication logic
β βββ chat_service.dart # AI chat functionality
βββ repos/
β βββ chat_repo.dart # Secure storage service
βββ widgets/
βββ messagecard.dart # Chat message widget
- Encrypted Storage: All user data is encrypted using
encrypt_shared_preferences - Biometric Authentication: Secure app access with fingerprint/face ID
- API Key Protection: Environment variables prevent API key exposure
- Local Data: All data stored locally on device for privacy
- Dark Theme: Optimized for coding environments
- Modern Design: Material Design 3 principles
- Smooth Animations: Lottie animations for enhanced experience
- Responsive Layout: Works across different screen sizes
- Copy Functionality: Easy copying of AI responses
- Loading States: Clear feedback during AI processing
- Profile Setup: Create your profile with name and optional profile picture
- Biometric Setup: Choose whether to enable biometric authentication
- Start Chatting: Begin asking coding questions immediately
- Authentication: Use biometric authentication or skip if disabled
- Chat Sessions: Create new sessions or continue existing ones
- Ask Questions: Get help with coding problems, debugging, or learning
- Copy Responses: Easily copy AI responses to your clipboard
- Clean Architecture: Separation of concerns with models, services, and UI
- State Management: Efficient state management with built-in Flutter solutions
- Error Handling: Comprehensive error handling throughout the app
- Performance: Optimized for smooth performance on all devices
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue if your problem isn't already reported
- Provide detailed information about your environment and the issue
- Voice input support
- Code syntax highlighting in responses
- Export chat history
- Custom AI model selection
- Team collaboration features
- Plugin system for IDE integration
- Google Gemini AI for powering the intelligent responses
- Flutter team for the amazing framework
- All contributors and users who help improve Propal
Made with β€οΈ by developers, for developers
Propal - Your AI-powered coding companion
