Skip to content

eterniqo/wdyl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WDYL - What Did You Learn

A beautiful and intuitive Flutter application for tracking your daily learning journey. Capture insights, discoveries, and progress with an elegant interface designed to make reflection a daily habit.

🎯 Purpose & Motivation

In today's fast-paced tech world, we learn small technologies, frameworks, and tools every day, but often forget these learnings when it comes time to update our resumes. WDYL solves this problem by providing a structured way to track your daily learning achievements.

The Resume Advantage: Export your learnings in PDF, CSV, and JSON formats, then feed them to any Large Language Model (LLM) to generate well-crafted resume paragraphs. Let AI help you articulate your continuous learning journey professionally and comprehensively.

Note: I created this app initially for my own personal use, but later decided to release it as open source because I found that there was no app which has simple WDYL and export function. I also wanted to keep it free from Google Services Framework (GSF) to maintain user privacy and independence.

✨ Features

πŸ“ Daily Learning Tracking

  • Smart Entry System: Add learning entries only for today's date
  • Rich Text Input: Multi-line text field with character counting
  • Timestamp Tracking: Automatic timestamp recording for each entry
  • Entry History: View all your learning entries in chronological order

🏷️ Badge System

  • Custom Badges: Create personalized badges to categorize your learning
  • Color Coding: Assign colors to badges for visual organization
  • Flexible Tagging: Attach multiple badges to each learning entry
  • Badge Management: Full CRUD operations for badge management

πŸ“… Calendar View

  • Interactive Calendar: Browse through past entries with a beautiful calendar interface
  • Date Navigation: Click on any date to view entries from that day
  • Visual Indicators: See which days have learning entries
  • Detailed View: Expand entries to read full content and see associated badges

🎨 Comprehensive Theme System

  • 10 Beautiful Themes: Choose from 5 base themes (Ocean, Forest, Sunset, Lavender, Midnight) each with light and dark variants
  • Dynamic Theming: All UI elements adapt instantly to your selected theme
  • Persistent Preferences: Your theme choice is saved and restored on app restart
  • Accessibility: Proper contrast ratios for comfortable reading

πŸ“€ Export Functionality

  • Multiple Formats: Export your data in JSON, CSV, and PDF formats
  • Date Range Selection: Choose specific date ranges for export
  • Flexible Options: Export by date range, month, or year
  • Data Portability: Keep your learning data safe and accessible

πŸ’Ύ Local Storage

  • SQLite Database: Robust local storage with no external dependencies
  • Data Persistence: All your entries and badges are safely stored locally
  • Backup Ready: Easy to export and backup your learning history

πŸš€ Getting Started

Prerequisites

  • Flutter SDK (3.9.2 or higher)
  • Dart SDK (included with Flutter)
  • Android Studio / VS Code with Flutter extensions
  • Android device or emulator for testing

Installation

  1. Clone the repository

    git clone <repository-url>
    cd wdyl
  2. Install dependencies

    flutter pub get
  3. Run the app

    flutter run

Building for Release

Android APK

flutter build apk --release

The signed APK will be available at build/app/outputs/flutter-apk/app-release.apk

Android App Bundle (AAB)

flutter build appbundle --release

πŸ“± How to Use

First Time Setup

  1. Launch the app - You'll see the welcoming home screen
  2. Choose your theme - Tap the palette icon to select from 10 beautiful themes
  3. Create badges - Use the label icon to create custom badges for categorizing your learning

Daily Learning Workflow

  1. Write your entry - Use the rich text field to capture what you learned today
  2. Add badges - Categorize your entry with relevant badges
  3. Save - Your entry is automatically timestamped and stored
  4. Review - View your entry in the "Today's Learning Journey" section

Managing Your Data

  • Calendar View: Use the calendar icon to browse past entries
  • Badge Management: Create, edit, or delete badges as needed
  • Export Data: Use the download icon to export your learning history

πŸ—οΈ Architecture

Project Structure

lib/
β”œβ”€β”€ main.dart                 # App entry point with theme provider setup
β”œβ”€β”€ models/                   # Data models
β”‚   β”œβ”€β”€ learning_entry.dart   # Learning entry data structure
β”‚   β”œβ”€β”€ badge.dart           # Badge data structure
β”‚   └── theme_data.dart      # Theme configuration
β”œβ”€β”€ providers/               # State management
β”‚   └── theme_provider.dart  # Theme state management
β”œβ”€β”€ screens/                 # UI screens
β”‚   β”œβ”€β”€ home_screen.dart     # Main learning entry screen
β”‚   β”œβ”€β”€ badge_management_screen.dart
β”‚   β”œβ”€β”€ export_screen.dart
β”‚   └── theme_selector_screen.dart
β”œβ”€β”€ services/                # Business logic
β”‚   β”œβ”€β”€ database_helper.dart # SQLite database operations
β”‚   └── export_service.dart  # Data export functionality
└── widgets/                 # Reusable UI components

Key Technologies

  • Flutter: Cross-platform UI framework
  • SQLite: Local database for data persistence
  • Provider: State management for theme system
  • Table Calendar: Interactive calendar widget
  • PDF/Csv packages: Export functionality
  • Shared Preferences: Theme preference persistence

🎯 Core Features Deep Dive

Theme System

The app features a comprehensive theming system with 10 distinct themes:

  • Ocean: Blue tones for a calming experience
  • Forest: Green palette for natural, focused learning
  • Sunset: Warm orange/red tones for evening reflection
  • Lavender: Purple hues for creative thinking
  • Midnight: Dark theme for late-night study sessions

Each theme includes carefully chosen colors for:

  • Primary actions and buttons
  • Secondary elements and accents
  • Text colors with proper contrast
  • Surface colors for cards and backgrounds
  • Shadow colors for depth

Data Management

  • Learning Entries: Stored with date, content, badges, and timestamp
  • Badge System: Flexible categorization with colors and names
  • Export Options: Multiple formats for data portability
  • Local First: No internet required, all data stays on device

User Experience

  • Intuitive Navigation: Clear icons and tooltips for all actions
  • Responsive Design: Adapts to different screen sizes
  • Smooth Interactions: Fluid animations and transitions
  • Accessibility: High contrast ratios and readable fonts

πŸ”§ Development

Running Tests

flutter test

Code Analysis

flutter analyze

Building for Different Platforms

iOS

flutter build ios --release

Web

flutter build web --release

Linux

flutter build linux --release

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Built with Flutter - the amazing cross-platform framework
  • Icons from Material Design Icons
  • Calendar functionality powered by table_calendar package
  • PDF generation by pdf package

Made with ❀️ for lifelong learners

Track your learning journey, celebrate your progress, and never stop growing.

About

WDYL - Track your daily learning journey with beautiful themes and export to resume-ready formats. A privacy-focused Flutter app for lifelong learners.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors