Skip to content

Latest commit

 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DevLog Icon

DevLog

Track. Learn. Ship.

A developer-focused study journal & task manager built with Flutter — designed to help students and self-taught devs stay consistent, organized, and accountable on their learning journey.

Flutter Dart Riverpod Hive Material 3


The Problem

"I study for 8 hours, but at the end of the week I can't remember what I actually learned."

Every CS student and self-taught developer faces the same struggle: you're learning a lot, but you have nothing to show for it. Notes get lost across apps, bookmarks pile up, and there's no sense of momentum. Existing tools are either too generic (Notion, Google Docs) or too complex (Jira, Linear) for a solo learner's workflow.

DevLog was built to solve exactly this — a single, focused app where you:

  • Log what you learn each day (with tags, mood, and resource links)
  • Track your streak so consistency becomes a visible habit
  • Manage your tasks without leaving the learning context
  • Own your data completely offline, no cloud accounts needed

It turns learning from an invisible activity into a measurable, exportable record.


Screenshots

Splash Screen    Login    Register    Dashboard

Splash → Login → Register → Dashboard

Study Logs    New Log    Tasks    Profile

Study Logs → New Log Entry → Task Board → Profile & Settings

Avatar Picker

Cartoon Avatar Picker (light mode)


Key Features

Feature Details
Dashboard Streak counter, daily output, task progress, recent logs — all at a glance
Study Logs Timestamped entries with title, notes, tags (Flutter, DevOps, DSA, ML/AI, Backend), mood tracker, and resource links
Search & Filter Full-text search across logs + tag-based chip filters
Task Board Kanban-style lanes: TODO / IN PROGRESS / DONE with priority, due dates, and progress rings
Profile & Avatar Cartoon emoji avatars, member-since badge, lifetime stats
Dark / Light Theme System-follow or manual toggle; custom DevlogPalette for both modes
Data Export Export logs & tasks as formatted JSON; share via system sheet
Fully Offline Zero network calls — everything lives on-device via Hive
Local Auth SHA-256 hashed passwords with salt; single-device account model

Tech Stack

Layer Technology Purpose
Framework Flutter 3.11 + Dart 3.11 Cross-platform UI (Android, iOS, Web, Desktop)
State Management Flutter Riverpod 2.6 Reactive, testable, provider-based architecture
Local Storage Hive + Hive Flutter Lightning-fast NoSQL box for offline persistence
Typography Google Fonts (Montserrat + Roboto) Clean, modern developer-friendly type system
Theming Material 3 + ThemeExtension Custom DevlogPalette for light/dark color tokens
Security crypto (SHA-256) Local password hashing with per-app salt
Unique IDs uuid RFC 4122 v4 UUIDs for logs and tasks
Sharing share_plus + path_provider System share sheet for JSON export files
Icons flutter_launcher_icons Adaptive launcher icons (Android + iOS)

Architecture & State Management

DevLog follows a clean layered architecture with Riverpod at the core:

lib/
├── main.dart                  # App entry, ProviderScope, routes
├── bootstrap.dart             # Hive initialization
├── core/
│   ├── theme/                 # AppTheme, DevlogPalette (light/dark)
│   ├── constants/             # Routes, Hive keys, validation, strings
│   ├── utils/                 # Streak calculator, initials, handle
│   └── avatar/                # Cartoon avatar definitions
├── models/                    # Immutable data classes (AppUser, StudyLogEntry, TaskItem, ...)
├── data/
│   └── local_store.dart       # Hive CRUD: session, logs, tasks, prefs, export
├── providers/                 # Riverpod notifiers & derived providers
│   ├── local_store_provider   # Global LocalStore instance
│   ├── auth_notifier          # Login / register / logout / avatar
│   ├── study_logs_notifier    # Add / remove / refresh logs
│   ├── tasks_notifier         # Upsert / toggle / lane / remove tasks
│   ├── preferences_notifier   # Theme, notifications, reminder time
│   └── home_providers         # Dashboard summary, recent logs, greeting (derived)
├── screens/                   # Full-page UI (Splash, Login, Home, NewLog, LogHistory)
└── widgets/                   # Reusable sheets (NewTaskSheet)

How Riverpod Drives the App

Riverpod Flow

Key patterns used:

  • NotifierProvider for mutable domain state (auth, logs, tasks, prefs)
  • Provider for derived/computed values (dashboard summary, greeting)
  • StateProvider for simple UI state (bottom nav index)
  • ref.watch() in build methods for reactive rebuilds
  • ref.read() in callbacks for one-shot mutations
  • ref.invalidate() to cascade resets on logout/data clear

Getting Started

Prerequisites

  • Flutter SDK >=3.11.0
  • Dart >=3.11.0
  • Android Studio / VS Code with Flutter extension

Installation

# Clone the repository
git clone https://github.com/your-username/dev_trace.git
cd dev_trace

# Install dependencies
flutter pub get

# Generate launcher icons (optional, already generated)
dart run flutter_launcher_icons

# Run the app
flutter run

Build APK

flutter build apk --release

Data Model

// What you learn
StudyLogEntry {
  id, tag, tags[], title, preview,
  occurredAt, moodIndex, resourceLink
}

// What you need to do
TaskItem {
  id, title, description, priority,
  completed, lane (todo/inProgress),
  dueAt, tag, ringProgress
}

// Who you are
AppUser {
  email, fullName, registrationNumber,
  createdAt, cartoonAvatarId
}

All data is serialized as JSON maps inside a single Hive box (devlog_main) — no schema migrations, no adapters, just straightforward map-based persistence.


What's Next

  • Cloud sync (Firebase / Supabase)
  • Weekly/monthly analytics with charts
  • Markdown support in log entries
  • Pomodoro timer integration
  • Calendar heatmap (GitHub-style contribution graph)
  • Collaborative study groups

License

This project is for educational purposes. Feel free to fork, learn from it, and build your own version.


Built with frustration, caffeine, and Flutter.
Stop scrolling. Start logging.

About

App which helps students to keep their recent ideas and future tasks organized, so they can quickly notedown their idea anywhere and anytime.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages