A modern desktop application for automating personalized student feedback distribution
Quick Start β’ Features β’ Use Cases β’ Installation β’ Architecture β’ FAQ
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.
- π 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.
- Download the latest release from GitHub Releases
- Extract and run
Feedback Flow.exe - Add students with their assigned class days
- Mark attendance for today's class
- Write feedback by clicking "Open Note" for each student
- Generate emails to send feedback automatically
π‘ Tip: The app automatically creates folders and organizes files in
Documents/Feedback-Flow
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
- 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
- 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)
- 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
- Direct Note Editing: One-click access to student feedback notes in your default text editor
- Automated Organization: Daily folders (
YYYYMMDD) created withinDocuments/Feedback-Flow - PDF Generation: Converts feedback notes to professional PDFs using PDFSharp
- Persistent Storage: Student folders are never deleted when removing students
- Automated Email Drafts: Generates
.emlfiles 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
- SQLite Database: Reliable local storage with automatic CSV migration
- Automatic Migration: Seamless one-time migration from legacy
students.csvfiles - Data Integrity: Enhanced validation and referential integrity with database constraints
- Schema Versioning: Automatic database migrations with idempotent update logic
- 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
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.
- 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 the latest release from the Releases page
- Extract the ZIP file to your desired location
- Run
Feedback Flow.exe
On first launch, the application will:
- Create the
Documents/Feedback-Flowdirectory structure - Automatically migrate any existing
students.csvfile to SQLite - Rename the original CSV to
students.csv.migrated
- Add Students: Click "Add Student" to create student records with assigned class days
- Mark Attendance: Select students and click "Mark Attendance" for the current day
- Assign Materials: (Optional) Assign learning materials to students
- Write Feedback: Click "Open Note" to write personalized feedback in your text editor
- Generate Emails: Click "Generate Emails" to create draft emails with PDF feedback
- Current Day View: Shows only students assigned to today's class
- All Students View: Click "Show All Students" to view and manage all students
- Feedback Notes:
feedback-john-doe-20260129.txt - PDF Files:
feedback-john-doe-20260129.pdf - Student Folders:
john-doe/
- Framework: .NET 10 (Windows Forms)
- Database: SQLite with Dapper ORM
- PDF Generation: PDFSharp
- Email: MimeKit for
.emlgeneration - Dependency Injection: Microsoft.Extensions.DependencyInjection
- β 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
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
| 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 |
- Visual Studio 2022 or later
- .NET 10 SDK
- Git
# 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 runThe 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 moreThis architecture ensures:
- Testability: Easy to mock services for unit testing
- Maintainability: Clear separation of concerns
- Flexibility: Simple to swap implementations
# Self-contained Windows x64 build
dotnet publish -c Release -r win-x64 --self-contained trueA PowerShell script is provided for setting up a test environment:
.\setup_test_env.ps1See CHANGELOG.md for detailed release notes and version history.
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.
- Migration Failed: Check that
students.csvis properly formatted and not locked by another application - Database Locked: Ensure only one instance of the application is running
- 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 Creation Failed: Ensure feedback note file exists and is not empty
- Encoding Issues: Save feedback notes in UTF-8 encoding
- Student folders are never deleted when removing students from the database
- Original CSV file is migrated and renamed to
students.csv.migratedafter 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
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.
This project is licensed under the MIT License - see the LICENSE.txt file for details.
- PDFSharp: PDF generation library (MIT License)
- MimeKit: Email message creation
- Dapper: Lightweight ORM for .NET
- SQLite: Embedded database engine
- Microsoft.Extensions.DependencyInjection: Dependency injection container
- Fluent UI System Icons: Application icon by Microsoft (MIT License)
Developed to simplify the teaching workflow and streamline student feedback distribution
Made with β€οΈ for educators
