Hello everyone,
I built software to help educational institutions make the assessment process smooth and easy. I call it PublicQ.
PublicQ is a comprehensive assessment platform built with .NET 10 and React 19. It provides everything needed to create, manage, and deploy educational assessments with role-based access control, version management, and AI-powered assistance.
Core Features
Sophisticated Role-Based Access Control
The platform implements a seven-tier role hierarchy where each role inherits permissions from levels below:
• Exam Takers - Complete assigned assessments
• Analysts - View performance data and generate reports
• Contributors - Create and manage content
• Managers - Coordinate teams and assignments
• Moderators - Oversee content quality
• Administrators - Full system control
This hierarchical model eliminates complex permission matrices while providing granular access control.
Assessment Module Versioning
Like version control for code, assessment modules support full versioning:
• Create new versions without losing historical data
• Make iterative improvements to content
• Maintain backward compatibility with previous results
• Publish when ready, keep working versions in draft
Content Organization with Groups
Groups are collections of assessment modules (not users). This design choice reflects how educators actually organize content—by topic rather than by people.
Example: A "Mathematics Level 1" group contains:
• Algebra Basics
• Geometry Fundamentals
• Statistics Introduction
Select the group when creating an assignment, and all modules are included automatically.
Technical Architecture
Backend: Clean Architecture with .NET 10
The backend follows clean architecture principles with clear separation:
• Domain Layer - Business entities and enums
• Application Layer - Business logic and interfaces
• Infrastructure Layer - Database, caching, services
• API Layer - Controllers and middleware
Key Technologies:
• Entity Framework Core with SQLite (swappable to PostgreSQL, MySQL, or SQL Server)
• FluentValidation for input validation
• JWT authentication with role-based authorization
• Redis for distributed caching
Frontend: Modern React with TypeScript
Architecture Highlights:
• Hooks-based components throughout
• TypeScript with strict mode
• CSS Modules for component styling
• React Router v7 with role-based guards
• Mobile-first responsive design
Model Context Protocol (MCP) Integration
PublicQ includes a built-in MCP server that allows AI assistants (GitHub Copilot, Claude Desktop) to interact directly with the platform:
"Create a math assessment with 10 algebra questions"
"Show performance data for user john@example.com"
"Upload question images to module ABC-123"
The MCP server respects role-based access control—AI operations inherit the user's permissions.
Assessment Workflow
- Module Creation
Contributors create assessment modules with questions, attach files (images, documents), and manage versions.
- Group Organization
Moderators organize modules into logical groups for distribution.
- Assignment Creation
Managers create assignments by selecting:
• A group of modules
• Start and end dates
• Time limits and settings
• Individual exam takers
- Exam Taking Experience
Exam takers see their assigned assessments and complete them within time limits.
- Reporting and Analytics
Analysts and Managers access comprehensive performance reports:
• Individual student tracking
• Module-level analytics
• Completion rates
• Time spent analysis
• Exportable PDF reports
Admin Dashboard
The admin panel provides comprehensive system management with dedicated sections for different aspects of the platform.
Available Management Sections:
• User Management - Create users, assign roles, bulk import
• Module Management - Content creation and versioning
• Group Management - Organize modules into groups
• Assignment Management - Distribute assessments to users
• Reports & Analytics - Track performance and engagement
• Security Settings - Configure authentication and policies
• Cache Management - Optimize performance
• Email Settings - Notification configuration
• AI Settings - MCP server and assistant integration
Reporting Capabilities
Comprehensive analytics for data-driven decisions:
Individual Reports:
• Student performance across all assignments
• Module completion tracking
• Time spent per assessment
• Score trends over time
Aggregate Reports:
• Class/group performance comparisons
• Module difficulty analysis
• Question-level statistics
• Completion rate tracking
Security Features
• JWT-based authentication
• Role-based authorization policies
• Comprehensive input validation
• SQL injection prevention
• File upload restrictions
• IP rate limiting
• Configurable password policies
• Session management
Database-First Configuration
Most platform settings are stored in the database and configured through the admin panel:
• JWT and authentication settings
• Password policies
• Email/SMTP configuration
• Cache settings
• File upload limits
• User registration options
• AI/MCP configuration
This approach allows runtime configuration changes without redeployment.
Deployment Options
PublicQ is designed for easy deployment:
• Docker containers for single-command setup
• Docker Compose for production with Redis caching
• Traditional deployment on Windows/Linux servers
• Cloud-ready with persistent storage support
Data persists across updates, ensuring smooth upgrades.
Try It Out
Live Demo: Visit https://publicq.app and click "Try Demo" for immediate access without registration
Source Code: https://github.com/MTokarev/publicq - Full source code, documentation, and deployment guides
Docker Hub: mtokarevv/publicq-app:latest - Pre-built container image
Default admin credentials are provided in the documentation (change immediately after first login).
License
MIT License - Fork it, modify it, deploy it commercially. No restrictions.
Contributing
Issues and pull requests are welcome on GitHub. For major changes, open an issue first to discuss proposed modifications.
Contact: publicq-app@outlook.com
Tech Stack: .NET 10 | React 19 | TypeScript | Entity Framework Core | Redis | SQLite | Docker
Built with clean architecture principles and real-world usage in mind.










Top comments (0)