Skip to content

Cortocircuito/Feedback-Flow

Repository files navigation

Feedback Flow

.NET Platform License C# GitHub release

A modern desktop application for automating personalized student feedback distribution

Quick Start β€’ Features β€’ Use Cases β€’ Installation β€’ Architecture β€’ FAQ


πŸ“– Overview

Feedback Flow is a desktop application developed in C# WinForms (.NET 10) designed to streamline the teaching workflow by automating the distribution of personalized feedback to students. It combines student management, attendance tracking, material assignment, and automated email generation into a single, intuitive interface.

πŸ“£ Recent Updates (v1.2.0)

  • πŸŒ‘ Centralized Dark Mode: Full Dark Mode system for the desktop app, automatically saving your preference and integrating natively with Windows 10/11 title bars.
  • πŸ“… Prepare Next Class: You can now plan ahead by assigning learning materials and writing a class description for a student's upcoming session.
  • β™Ώ Accessibility: Improved tab navigation and refined UI across the dashboard.
  • πŸ”„ Session-Based Attendance: Robust attendance tracking built to handle multiple daily sessions reliably.

πŸš€ Quick Start

  1. Download the latest release from GitHub Releases
  2. Extract and run Feedback Flow.exe
  3. Add students with their assigned class days
  4. Mark attendance for today's class
  5. Write feedback by clicking "Open Note" for each student
  6. Generate emails to send feedback automatically

πŸ’‘ Tip: The app automatically creates folders and organizes files in Documents/Feedback-Flow

πŸ’Ό Use Cases

Feedback Flow is perfect for:

  • Language Teachers: Manage multiple classes across different days with personalized feedback
  • Tutors: Track student progress and send weekly feedback reports
  • Workshop Instructors: Organize materials and attendance for recurring sessions
  • Educational Coordinators: Maintain records and streamline communication with students
  • Online Educators: Combine digital materials with personalized feedback delivery

✨ Features

πŸ‘₯ Student Management

  • Complete CRUD Operations: Add, edit, and remove students with a dedicated dialog form
  • Class Day Assignment: Assign students to specific weekdays (Monday-Friday) with multi-day support
  • Smart Filtering: Dashboard automatically displays only students assigned to the current day
  • Instant Search: Real-time filtering by name in "View All" mode
  • View All Mode: Toggle to view all students across all days for planning and administration
  • Column Sorting: Alphabetic sorting for "Student Name" and "Learning Material" columns

πŸ“… Attendance & Tracking

  • One-Click Attendance: Mark attendance directly in the grid with visual checkmarks
  • Day-Specific Views: Context-aware interface that adapts based on current day vs. all-students view
  • Visual Mode Indicators: Color-coded panels showing current view mode
    • πŸ“… Green panel: Current day view (active teaching mode)
    • πŸ‘₯ Blue panel: All students view (planning/admin mode)

πŸ“š Learning Materials & Planning

  • Prepare Next Class: Plan ahead by assigning learning materials and writing a class description for a student's upcoming session
  • Material Assignment: Assign optional learning materials (PDF, Word, PowerPoint, LibreOffice)
  • Flexible Workflow: Send feedback emails with or without materials
  • Smart Attachments: Materials automatically attached when available

πŸ“ Feedback Management

  • Direct Note Editing: One-click access to student feedback notes in your default text editor
  • Automated Organization: Daily folders (YYYYMMDD) created within Documents/Feedback-Flow
  • PDF Generation: Converts feedback notes to professional PDFs using PDFSharp
  • Persistent Storage: Student folders are never deleted when removing students

πŸ“§ Email Integration

  • Automated Email Drafts: Generates .eml files with feedback and materials attached
  • Attendance-Based Sending: Emails generated for all students who attended class
  • Customizable Templates: Pre-filled subject and body with student-specific information
  • Temp Email Storage: Drafts saved in Documents/Feedback-Flow/TempEmails

πŸ—„οΈ Data Management

  • SQLite Database: Reliable local storage with automatic CSV migration
  • Automatic Migration: Seamless one-time migration from legacy students.csv files
  • Data Integrity: Enhanced validation and referential integrity with database constraints
  • Schema Versioning: Automatic database migrations with idempotent update logic

🎨 UI & Customization

  • Centralized Dark Mode: Full Dark Mode system for the desktop app, automatically saving your preference and integrating natively with Windows 10/11 title bars
  • Accessibility: Improved tab navigation and refined UI across the dashboard
  • High DPI Ready: Scales perfectly on high-resolution displays

πŸ–ΌοΈ Screenshots

Application Screenshot

πŸ’Ύ Data Storage

All data is stored locally on your machine:

Data Type Location Format
Student Database Documents/Feedback-Flow/feedbackflow.db SQLite
Feedback Notes Documents/Feedback-Flow/{student-name}/ .txt files
PDF Feedback Documents/Feedback-Flow/{student-name}/ .pdf files
Email Drafts Documents/Feedback-Flow/TempEmails/ .eml files
Learning Materials Documents/Feedback-Flow/{student-name}/ Various formats

πŸ”’ Privacy: All data remains on your local machine. No cloud storage or external services are used.

πŸ“¦ Installation

System Requirements

  • Operating System: Windows 10/11 (64-bit)
  • Runtime: .NET 10 Runtime (included in self-contained builds)
  • Disk Space: ~100 MB for application + storage for student data
  • Memory: 512 MB RAM minimum
  • Display: 1280x720 minimum resolution recommended

Download & Run

  1. Download the latest release from the Releases page
  2. Extract the ZIP file to your desired location
  3. Run Feedback Flow.exe

First-Time Setup

On first launch, the application will:

  • Create the Documents/Feedback-Flow directory structure
  • Automatically migrate any existing students.csv file to SQLite
  • Rename the original CSV to students.csv.migrated

πŸš€ Usage

Basic Workflow

  1. Add Students: Click "Add Student" to create student records with assigned class days
  2. Mark Attendance: Select students and click "Mark Attendance" for the current day
  3. Assign Materials: (Optional) Assign learning materials to students
  4. Write Feedback: Click "Open Note" to write personalized feedback in your text editor
  5. Generate Emails: Click "Generate Emails" to create draft emails with PDF feedback

View Modes

  • Current Day View: Shows only students assigned to today's class
  • All Students View: Click "Show All Students" to view and manage all students

File Naming Conventions

  • Feedback Notes: feedback-john-doe-20260129.txt
  • PDF Files: feedback-john-doe-20260129.pdf
  • Student Folders: john-doe/

πŸ—οΈ Architecture

Technology Stack

  • Framework: .NET 10 (Windows Forms)
  • Database: SQLite with Dapper ORM
  • PDF Generation: PDFSharp
  • Email: MimeKit for .eml generation
  • Dependency Injection: Microsoft.Extensions.DependencyInjection

Design Principles

  • βœ… SOLID Principles: Service-based architecture with clear separation of concerns
  • βœ… Dependency Injection: All services registered via DI container
  • βœ… Async/Await: Non-blocking database operations for responsive UI
  • βœ… Repository Pattern: Abstracted data access through service interfaces

Project Structure

Feedback Flow/
β”œβ”€β”€ Services/
β”‚   β”œβ”€β”€ Interfaces/           # Service contracts
β”‚   β”œβ”€β”€ FileSystemService.cs  # File/folder operations
β”‚   β”œβ”€β”€ SqliteDatabaseService.cs  # Database access
β”‚   β”œβ”€β”€ StudentService.cs     # Student CRUD operations
β”‚   β”œβ”€β”€ MigrationService.cs   # CSV to SQLite migration
β”‚   β”œβ”€β”€ NoteService.cs        # Feedback note management
β”‚   β”œβ”€β”€ PdfGenerationService.cs  # PDF conversion
β”‚   └── OutlookEmailService.cs   # Email draft generation
β”œβ”€β”€ UI/
β”‚   β”œβ”€β”€ Forms/                # WinForms UI components
β”‚   β”‚   β”œβ”€β”€ MainDashboard.cs  # Main application window
β”‚   β”‚   β”œβ”€β”€ PrepareNextClassForm.cs # Next class planner dialog
β”‚   β”‚   └── StudentForm.cs    # Student add/edit dialog
β”‚   └── Theme/                # Dark Mode and styling logic
β”œβ”€β”€ Models/                   # Data models
β”œβ”€β”€ Helpers/                  # Utility classes
β”œβ”€β”€ Assets/                   # Icons and screenshots
└── Program.cs                # Application entry point

Key Services

Service Responsibility
IStudentService Student CRUD operations and queries
IDatabaseService SQLite database initialization and schema management
IMigrationService Legacy CSV to SQLite migration
IFileSystemService File and folder operations
INoteService Feedback note creation and management
IPdfGenerationService PDF conversion from text notes
IOutlookEmailService Email draft generation with attachments

πŸ’» Development

Prerequisites

  • Visual Studio 2022 or later
  • .NET 10 SDK
  • Git

Setup

# Clone the repository
git clone https://github.com/Cortocircuito/Feedback-Flow.git
cd Feedback-Flow

# Open in Visual Studio
start "Feedback Flow.slnx"

# Or build from command line
dotnet build

# Run the application
dotnet run

Dependency Injection Setup

The application uses Microsoft.Extensions.DependencyInjection. All services are registered in Program.cs:

services.AddSingleton<IDatabaseService, SqliteDatabaseService>();
services.AddSingleton<IStudentService, StudentService>();
services.AddSingleton<IPdfService, PdfGenerationService>();
// ... and more

This architecture ensures:

  • Testability: Easy to mock services for unit testing
  • Maintainability: Clear separation of concerns
  • Flexibility: Simple to swap implementations

Building for Release

# Self-contained Windows x64 build
dotnet publish -c Release -r win-x64 --self-contained true

Testing

A PowerShell script is provided for setting up a test environment:

.\setup_test_env.ps1

πŸ“‘ Changelog

See CHANGELOG.md for detailed release notes and version history.

❓ FAQ

Can I use this on macOS or Linux?

Currently, Feedback Flow is Windows-only due to WinForms. A cross-platform version using Avalonia or MAUI could be considered for future releases.

Where is my data stored?

All data is stored locally in Documents/Feedback-Flow. The SQLite database contains student records, while feedback notes and materials are organized in student-specific folders.

What happens to student data when I remove a student?

Student records are removed from the database, but their folders and files are never deleted. This ensures you never lose historical feedback or materials.

Can I customize the email templates?

Currently, email templates are pre-defined in the code. Future versions may include customizable templates. You can modify the OutlookEmailService.cs file to customize the email format.

What file formats are supported for learning materials?

The application supports PDF, Word (.doc, .docx), PowerPoint (.ppt, .pptx), and LibreOffice formats (.odt, .odp). Any file can be stored in student folders, but these formats are specifically recognized.

How do I backup my data?

Simply copy the entire Documents/Feedback-Flow folder to your backup location. This includes the database and all student files.

Can multiple teachers use this on the same computer?

Yes, each Windows user account will have its own separate Documents/Feedback-Flow folder with independent data.

πŸ› Troubleshooting

Database Issues

  • Migration Failed: Check that students.csv is properly formatted and not locked by another application
  • Database Locked: Ensure only one instance of the application is running

Email Generation

  • Emails Not Generated: Verify that students have attendance marked for the current day
  • Attachments Missing: Check that material files exist in the student's folder

PDF Generation

  • PDF Creation Failed: Ensure feedback note file exists and is not empty
  • Encoding Issues: Save feedback notes in UTF-8 encoding

πŸ“ Notes & Best Practices

  • Student folders are never deleted when removing students from the database
  • Original CSV file is migrated and renamed to students.csv.migrated after successful import
  • Note files follow the naming convention: feedback-john-doe-20260129.txt
  • Email drafts are saved in Documents/Feedback-Flow/TempEmails
  • Always mark attendance before generating emails for the day

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

πŸ“„ License

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

πŸ™ Acknowledgments

Libraries & Frameworks

Design Resources


Developed to simplify the teaching workflow and streamline student feedback distribution

Made with ❀️ for educators

About

Feedback Flow is a Windows desktop application that automates the distribution of personalized student feedback. It manages student lists, generates PDF feedback documents from text notes, and creates ready-to-send email drafts with attachments-streamlining the entire feedback workflow for educators.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors