This application requires API keys from two services:
To get your DeepSeek API key:
- Visit OpenRouter and create an account
- Navigate to your account settings and generate an API key
- Replace
YOUR_DEEPSEEK_API_KEY
inlib/screens/home_screen.dart
with your actual API key
To get your ElevenLabs API key:
- Visit ElevenLabs and create an account
- Go to your profile settings → API Key
- Generate a new API key
- Replace
YOUR_ELEVENLABS_API_KEY
inlib/screens/main_screen.dart
with your actual API key
- DeepSeek API Key:
lib/screens/home_screen.dart
- ElevenLabs API Key:
lib/screens/main_screen.dart
You can increase the tokens used for story generation in:
lib/services/story_service.dart
(around line 176)
Change: 'max_tokens': 300,
to your preferred value
- Flutter SDK (Latest stable version recommended)
- JDK 17 (Required for Android build)
- Android Studio or VS Code with Flutter/Dart plugins
This project uses:
- Gradle 7.5 or higher
- Android Gradle Plugin 7.3.0 or compatible version
- Clone the repository
- Add your API keys as mentioned above
- Run
flutter pub get
to install dependencies - Run
flutter run
to start the application on a connected device or emulator
If you encounter Gradle-related errors, ensure you're using JDK 17 by:
- Setting JAVA_HOME environment variable to point to JDK 17
- Checking Android Studio/IntelliJ settings to use JDK 17 for the project
- Copy
.env.template
to a new file named.env
- Fill in your API keys in the
.env
file:
Get your Firebase API keys from your Firebase Console:
- Go to Project Settings
- Under "Your apps", find the configuration for each platform
- Copy the API keys for each platform into your
.env
file
- Visit OpenRouter
- Create an account
- Navigate to your account settings
- Generate an API key
- Add it to your
.env
file asOPENROUTER_API_KEY
- Visit ElevenLabs
- Create an account
- Go to your profile settings → API Key
- Generate a new API key
- Add it to your
.env
file asELEVENLABS_API_KEY
During my internship, I focused on the following areas:
- Frontend UI/UX development
- API integration (Elevenlabs TTS, Deepseek Story Service)
- State management
- App architecture and component design
This guide will help you understand the parts of the project I worked on.
lib/main.dart
: The entry point of the application with theme management and app initialization.
These files contain the screens I developed:
main_screen.dart
: The main app interface with navigation. Contains the Elevenlabs TTS API integration.home_screen.dart
: The landing screen with story generation UI. Contains Deepseek API integration.profile_screen.dart
: User profile UI with settings management.settings_screen.dart
: App settings with theme and text size controls.favorites_screen.dart
: UI for saved favorite stories.splash_screen.dart
: Initial loading screen with animations.about_screen.dart
: App information display.contact_screen.dart
: Contact UI.help_support_screen.dart
: Help documentation UI.
I implemented these service files for API integration:
tts_service.dart
: Text-to-speech functionality using Elevenlabs API.story_service.dart
: Story generation using Deepseek API.storage_service.dart
: Local data persistence.
These define the data structures I designed:
story.dart
: Story data model for managing generated content.user_model.dart
: User data structure.
Reusable UI components I created:
custom_drawer.dart
: Side navigation drawer with animations.default_icon.dart
: Icon components with consistent styling.
-
Story Generation UI
- Prompt input interface
- Story display with animations
- Loading states and error handling
-
Text-to-Speech Integration
- Voice selection
- Playback controls
- Audio quality settings
-
Theme Management
- Dark/light mode toggle
- Persistent theme settings
- Accessibility options (text scaling)
-
UI/UX Design
- Custom animations
- Responsive layouts
- Intuitive navigation
pubspec.yaml
: Project dependencies and assets configuration.flutter_launcher_icons.yaml
: App icon specifications