Public sector and education · Website with admin panel and course platform
E.E. Dr. João Beraldo
Website and course platform for a public school, with lessons, a final exam and certificates with a verification code.

- Client
- Full time public high school in Carlos Chagas, MG
- Where
- Carlos Chagas, MG, Brazil
- Technology
- Next.js 14 · React · TypeScript · Prisma · MariaDB · Tailwind CSS · TipTap · Nodemailer · Gemini API · nginx · systemd
- Status
- Live · escolaestadualdrjoaoberaldo.com
- Development
- André Gomes · NexiaLabs
In short
The website of Escola Estadual Dr. João Beraldo, a public school in Carlos Chagas, Minas Gerais, Brazil, is an institutional portal with an IT course platform, built by André Gomes of NexiaLabs. Students create an account, take the lessons, sit the final exam and, scoring 70 or more, receive a certificate with a unique code that anyone can check at a public address. It is built with Next.js, Prisma and MariaDB and runs on a Hostinger VPS.
The client
Escola Estadual Dr. João Beraldo was founded in 1946 and runs a full time high school program with an Information Technology track. The school needed a website for news, enrollment and contact, and also a home for the IT courses its own teachers produce. André, who authors some of the published courses, built the project in stages starting in May 2026. In September 2026 the site moved off third party services onto its own VPS with MariaDB.
The challenge
A public school certificate has to be trustworthy: whoever receives it must be able to check that it is real. Issuing could not depend on a teacher generating files one by one, and it could never go to someone who had not finished the course. The admin panel had to be simple for teachers and staff, with different roles for each. And everything had to work well on a phone, which is how most students get online.
What was built
Courses are grouped into four tracks: Programming, Software, Hardware, and Excel and Data. Each course has lessons with per student progress and a final exam graded on the server, unlocked only after every lesson is complete. With a score of 70 or more, the system stores the certificate with name, course, workload and grade, and generates a short code that leaves out look alike letters and digits, since someone may need to type it by hand. The public address with that code is the verification itself, and the instructor's scanned signature can be swapped in without redeploying the site.
What the system does
- News, institutional pages and settings editable from the admin panel, with a rich text editor.
- Course platform with tracks, lessons, per student progress and a server graded final exam.
- Certificates issued automatically on passing, with a unique code and a public verification page.
- Classroom quizzes joined by access code, with AI suggested questions for the teacher to review.
- Library module with catalog, readers, loans and returns.
- Leaderboard, public student portfolio and a career aptitude test.
- Contact form that stores requests in the school office's panel.
- User accounts with invitations, approval and roles for management, teachers and student assistants.
// For whoever reviews the code: architecture and decisions.
Under the hood
The project is a Next.js 14 App Router application, built in standalone mode and served by a systemd service behind nginx on a Hostinger VPS. The database is a local MariaDB reached through Prisma with the official adapter, and uploaded images live on the server's disk, served by nginx. Authentication is custom, with cookie sessions and bcrypt hashed passwords. API routes handle courses, progress, exams, quizzes and the library, and sensitive actions are written to an activity log. Question suggestions use the Gemini API with a list of models in order of preference, so one model going down does not take the feature with it.
Technical decisions
- Exams are graded only on the server and correct answers never reach the browser; exam unlocking is checked again in the API, because hiding a button is not a business rule.
- A unique constraint per student and course in the database settles simultaneous submissions, and certificate codes use an alphabet without 0, O, 1, I and L to avoid typing errors.
- The certificate signature lives in the uploads folder, not in the code, so changing it means copying an image, with no new deploy.
- Moved off managed services to MariaDB and custom authentication on the same VPS that runs the other NexiaLabs projects.
Does your business look like this one?
It fits schools, independent course providers and training institutions that want to publish their own lessons and issue certificates anyone can verify.
Frequently asked questions
Who developed E.E. Dr. João Beraldo?
E.E. Dr. João Beraldo was developed by André Gomes Andrade, a full stack developer from Carlos Chagas, Minas Gerais, Brazil, at NexiaLabs, from planning to launch.
Where is the client of E.E. Dr. João Beraldo based?
Full time public high school in Carlos Chagas, MG. Carlos Chagas, MG, Brazil.
Which technologies were used to build E.E. Dr. João Beraldo?
E.E. Dr. João Beraldo uses Next.js 14, React, TypeScript, Prisma, MariaDB, Tailwind CSS, TipTap, Nodemailer, Gemini API, nginx, and systemd.
Can you build a similar project for my business?
Yes. Every project is custom built, with code and accounts in the client's name. The first step is a WhatsApp conversation at +55 (33) 98465 6356 to understand what you need.
More public sector and education projects
Private accessGestFrota
Fleet and fuel management for city governments: authorizes every fill up, enforces per vehicle limits and produces audit ready reports.
Carlos Chagas City Government and companies that manage public fleets
See the project
Escola IDEC
Website for a public servant training school, with a course catalog, an editable schedule and lead capture.
Continuing education institute that trains municipal public servants
See the project