About this software
About Bright Class
BrightClass is an ASP.NET Core 8 MVC application on SQL Server using raw ADO.NET (no Entity Framework), built for one school with many branches. Teachers award behaviour points, set and mark tasks, and post to a private class story, while parents follow their own children and chat privately with teachers. Admins and branch admins manage branches, academic years, sections, staff, students and parents. Students sign in with a code and PIN. The source includes 57 Razor views, 12 controllers, 15 repositories, SQL scripts, a Dockerfile and docker-compose, 40 unit tests and a 76-check end-to-end smoke script. It is also installable as a PWA with a phone-style app layout.
Why Bright Class
What makes it better
than the alternatives
- 01
Multi-branch role model
Admin sees every branch, BranchAdmin only their own, with Teacher, Parent and Student roles enforced by class-level [Authorize] and fallback sign-in policy.
- 02
Append-only points ledger
Corrections are compensating reversal rows, reset starts a new period, and old awards stay in each student's history.
- 03
Verified guardian links
Parents join with teacher-issued invite codes, and chat threads are tied to one child and only open between connected teacher and guardian.
- 04
Tested security posture
Reflection-based tests check every POST action has a role, antiforgery runs globally, and ENDPOINTS.md must match the code; sign-in endpoints are rate-limited to 10 per minute per IP.
- 05
Ready to deploy
Docker compose with SQL Server 2022 and a least-privilege app login, required passwords with no defaults, and a demo-password lockout on real installs.
Behaviour Points
- Teachers award skill-based points to selected students or a whole group
- Idempotent awards using a request key
- Reverse awards with reason
- keeping both entries in history
- Start a new points period per section
- Parents and students see visible points
Tasks and Submissions
- Task types: Activity
- Homework
- Classwork
- Project
- Publish to the whole class
- a group or selected students
- with attachments
- Online student submissions with versions
- late rules and late percentage
- Review as Approved
- NeedsChanges or NotDone with feedback and points
- Approved work can go to a portfolio; assistants can save drafts for approval
Class Story and Notices
- Private per-section feed with optional image
- Assistant posts go to the class teacher for approval
- Hide posts
- School and branch notices posted by admins
- Parent and student feed scoped to their children's sections
Parent-Teacher Messaging
- Private threads tied to one child
- Parents message their child's teachers; teachers message verified guardians
- Message length limits and send-permission checks
Parent Portal
- Multiple children per parent
- Points
- tasks and teacher list per child
- Add a child by invite code with teacher verification
- Parent self-registration with invite code
Student Portal
- Sign in with student code and PIN
- Own points
- tasks and online submission
- Join groups and clubs via join codes
- with optional teacher approval
School Administration
- Branches
- academic years
- grades and sections
- Staff
- student and parent records
- with documents and photos
- Dashboard figures per branch
- Admission
- moving and withdrawing students
Settings and Branding
- App name
- school name
- brand colour and logo
- SMTP configuration with encrypted password and test email
- Admin-only access
Phone App and Deployment
- PWA with phone app layout
- manifest and offline page
- Static landing page
- Docker and docker-compose with SQL Server
- Auto-created and upgraded database on start
- Permission-checked file serving outside wwwroot
| Language | Version | Framework | Used for | Share of code |
|---|---|---|---|---|
| C# | — | — | Web, API, admin | 37.6% |
| C# (Razor) | — | — | Web pages | 26.6% |
| SQL | — | — | Database | 16.6% |
| CSS | — | — | Styling | 7.3% |
| HTML | — | — | Front-end | 6.1% |
| JavaScript | — | — | Front-end | 4.7% |
| Shell | — | — | Scripts | 1.1% |
- Primary language
- C# on .NET 8 (ASP.NET Core 8 MVC)
- Framework
- ASP.NET Core 8 MVC with Razor views, raw ADO.NET (no Entity Framework)
- Database
- SQL Server 2022 (Docker image uses Express edition)
- Authentication
- ASP.NET Core cookie sign-in with role-based [Authorize]. Staff and parents use e-mail and password, students use code and PIN, and parents join through teacher invite codes.
- Licence
- Single-site
- Screens
- 50
- Database tables
- 28
- Supported languages
- English interface only. No translation framework is in the code. Right-to-left (RTL) layout is not supported.
- Browser support
- Modern evergreen browsers (Chrome, Edge, Firefox, Safari). The digest contains no explicit browser test matrix.
| Minimum | Recommended | |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 4 GB RAM | 8 GB RAM (SQL Server and the web app on one host) |
| OS | Linux containers: .NET 8 ASP.NET runtime 8.0.33 (aspnet:8.0.33 image) and SQL Server 2022 CU27 on Ubuntu 22.04 | Linux containers: .NET 8 ASP.NET runtime 8.0.33 (aspnet:8.0.33 image) and SQL Server 2022 CU27 on Ubuntu 22.04 |
| Est. monthly hosting | $25 | $25 |
Requires Docker with Compose. Both passwords are required and have no defaults. ```bash export SA_PASSWORD='<strong password for sa>' export APP_DB_PASSWORD='<strong password for brightclass_app>' docker compose up -d --build ``` Open http://localhost:8080. Set `School__Name` and the `Setup__Admin*` values in docker-compose.yml for a real school. Keep `Setup__DemoData` at `false` on a live school.
```bash cd "NET Project" cp appsettings.example.json appsettings.json # then fill in the connection string and school values dotnet test BrightClass.sln -c Release dotnet publish BrightClass.csproj -c Release -o out cd out && dotnet BrightClass.dll --urls http://localhost:5041 ``` Run the app behind Nginx or Apache with HTTPS, so forwarded headers and the rate limits work. Do not commit appsettings.json or App_Data/.
Quality report
Manually reviewedHow to read the quality report
What this is. Every project on Vibe96 goes through an automated audit of its source code before a reviewer in Dubai checks it by hand. The score is out of 100; 75 is the minimum to be listed, and any single failing check blocks a listing regardless of the score.
- Security
- No real credentials in the code, every data-changing route protected, admin areas role-gated, no SQL built from user input.
- Code structure
- A developer can navigate and extend it: clear module boundaries, no giant files, little copy-paste.
- Docs & completeness
- The setup guide, example config, schema and required files the builder committed to are actually in the archive.
- Dependency health
- Packages pinned, no known critical vulnerabilities, no abandoned libraries in production paths.
- Build & deploy
- A clean machine can restore, build and start it by following the shipped instructions.
Warnings are problems that didn't block the listing; they stay visible here until a later version clears them. The audit reads the code — it does not run it — so always try the live demo before you buy. Lines of code are counted from the same audited archive.
82/ 100
Automated audit score
✓ Passed the auditReviewer notes (3 minor)
No real credentials found; shared demo password in docs/tests and an unreviewed seed hash file remain; well-layered mvc structure with clear partial-class splits; some duplication and hard-coded values remain; likely builds, but duplicate solution/project files and unverifiable setup steps leave gaps; data layer not visible in digest; architecture looks sound but sql safety and schema cannot be verified; lockfiles present and locked-mode restore used, but contents were not visible so versions could not be verified. None of these stop the software from working; the developer has been told and improvements come in a future update.
Versions & updates
No updates yet. New versions appear here with a changelog.
Buyers receive updates free for 1 year.
What you get
- </>Full source codeThe complete audited source, delivered as a download from your account. No obfuscation.
- ▤DocumentationSetup guide, architecture notes, CLAUDE.md and AGENTS.md.
- ↻One year of updatesEvery new version the builder publishes, free for 12 months.
- ♧30 days of supportInstallation and defect support through Vibe96 tickets.