# Overview - Nokken Documentation
Documentation for the Nokken medical tracking application
Author: Charlotte Croce

Skip to content

# Architecture

Nøkken follows a feature-first architecture with clear separation of concerns.

## Project Structure

    lib/
    ├── main.dart                   # Application entry point
    ├── src/
        ├── app.dart                # App configuration and theme setup
        ├── core/                   # Core functionality shared across features
        │   ├── constants/          # App-wide constants
        │   ├── screens/            # Core screens (main container)
        │   ├── services/           # Shared services (database, navigation, etc.)
        │   ├── theme/              # Theming system
        │   └── utils/              # Utility functions
        ├── features/               # Feature modules
            ├── medication_tracker/ # Medication tracking feature
            ├── bloodwork_tracker/  # Bloodwork tracking feature
            ├── mood_tracker/       # Mood tracking feature
            ├── stats/              # Statistics / Analysis
            ├── scheduler/          # Daily tracker and calendar
            └── settings/           # Settings and preferences

## Dependency Flow

- Features may depend on core services, but never on other features
- Core services are designed to be independent and modular
- Data flows from the database through state providers to UI components

## State Management

Nokken uses Riverpod for state management.