Project Setup

Complete guide to setting up your development environment for MiyoList

📋 Prerequisites

Required Software

  • Flutter SDK - Version 3.24.0 or higher
  • Dart SDK - Version 3.5.0 or higher
  • Git - For version control
  • VS Code or Android Studio - Recommended IDEs

Platform-Specific Requirements

Windows Development:

  • Visual Studio 2022 (with C++ desktop development)
  • Windows 10 SDK

Android Development:

  • Android Studio
  • Android SDK (API level 21+)
  • Java Development Kit (JDK) 11+

macOS/iOS Development:

  • Xcode 15+
  • CocoaPods
  • macOS 12.0 or higher

⚙️ Installation Steps

1. Clone the Repository

git clone https://github.com/Baconana-chan/miyolist.git
cd miyolist

2. Install Flutter Dependencies

flutter pub get

3. Set Up Environment Variables

Create a .env file in the root directory:

# AniList API Configuration
ANILIST_CLIENT_ID=your_client_id_here
ANILIST_CLIENT_SECRET=your_client_secret_here
ANILIST_REDIRECT_URI=https://miyo.my/auth/callback

# Supabase Configuration (Optional - for cloud sync)
SUPABASE_URL=your_supabase_url_here
SUPABASE_ANON_KEY=your_supabase_anon_key_here

4. Configure AniList OAuth

  1. Go to AniList Developer Settings
  2. Create a new API Client
  3. Add redirect URI: https://miyo.my/auth/callback
  4. Copy Client ID and Client Secret to your .env file

5. Run the Application

For Windows:

flutter run -d windows

For Android (connect device or start emulator):

flutter run -d android

📁 Project Structure

miyolist/
├── lib/
│   ├── core/              # Core functionality
│   │   ├── constants/     # App constants
│   │   ├── services/      # Core services (auth, storage, etc.)
│   │   └── utils/         # Utility functions
│   ├── features/          # Feature modules
│   │   ├── activity/      # Activity feed
│   │   ├── anime/         # Anime management
│   │   ├── auth/          # Authentication
│   │   ├── manga/         # Manga management
│   │   ├── profile/       # User profile
│   │   ├── search/        # Global search
│   │   └── statistics/    # Statistics & charts
│   ├── models/            # Data models
│   ├── widgets/           # Shared widgets
│   └── main.dart          # Entry point
├── assets/                # Images, fonts, etc.
├── android/               # Android-specific code
├── windows/               # Windows-specific code
├── ios/                   # iOS-specific code (future)
├── macos/                 # macOS-specific code (future)
├── test/                  # Unit tests
└── pubspec.yaml           # Dependencies

🔧 Build Configuration

Debug Build

flutter build windows --debug
flutter build apk --debug

Release Build

flutter build windows --release
flutter build apk --release

Build Configuration Files

  • pubspec.yaml - Dependencies and assets
  • analysis_options.yaml - Linter rules
  • android/app/build.gradle - Android build config
  • windows/CMakeLists.txt - Windows build config

🐛 Common Issues & Solutions

Flutter Doctor Issues

Run flutter doctor -v to diagnose problems

Fix missing dependencies based on the output

Dependency Conflicts

Try cleaning the project:

flutter clean
flutter pub get

Build Failures

Check that all environment variables are set correctly

Ensure your Flutter version matches the required version

OAuth Not Working

Verify redirect URI matches exactly in AniList settings

Check that Client ID and Secret are correct in .env

🚀 Next Steps

✅ Project is set up and running

👉 Read the Architecture Guide to understand the codebase

👉 Check out Contributing Guidelines before making changes

👉 Explore API Integration to work with AniList API