ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
IGCSE pseudocode compiler online for Cambridge 0478 and A Level 9618. Free editor and runner: write, run and check pseudocode in the browser.
EducationTypeScript · JavaGitHub @SherlemiousOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Cambridge IGCSE and A Level pseudocode compiler. DO NOT HOST, deploy, or give this away without written permission — free, a school, or one country still counts. Official site only.
Taken from the repository README
Loading the full README.
Read the full README ↗A browser-based pseudocode interpreter for Cambridge IGCSE Computer Science (0478/0984/2210) and Cambridge International AS & A Level Computer Science (9618). Write and run pseudocode, practice past-paper questions, and simulate timed exams — all in one place.
Live: pseudocode-compiler.sherlemious.com
[!CAUTION] The source is public to read. It is not yours to deploy. Hosting, deploying, mirroring, or giving this away needs prior written permission. That includes free, non-commercial, a school, a class, students, and only in one country. The only public copy is the live site above. Full terms: LICENSE. Email [email protected] to ask. Silence is not permission.
DATE, pointers, sets, BYREF/BYVAL, random-access files, CASE ranges, and classes.Ctrl/⌘ K opens a grouped, searchable palette for every action (run, format, open, navigate, links), plus tidy Open and Export menus for examples, files, downloads, and share links.INPUT support with interactive prompts, and OPENFILE, READFILE, WRITEFILE (including random-access records) simulated in browser storage.| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router), React 19 |
| Language | TypeScript 5 |
| Styling | Tailwind CSS v4, tailwind-scrollbar |
| Components | Radix UI, lucide-react / simple-icons, sonner |
| Editor | CodeMirror 6 (@codemirror/lang-python for Python view) |
| Parser | antlr4ng v3 (custom ANTLR4 grammar) |
| Flowcharts | React Flow (@xyflow/react) + dagre layout |
| Database | PostgreSQL via Neon |
| ORM | Prisma 6 |
| Auth | Auth.js (NextAuth v5) |
| Resend | |
| Analytics | PostHog |
| Markdown | react-markdown, remark-gfm |
| Theming | react-colorful (custom theme editor) |
| Testing | Vitest |
IGCSE-Pseudocode-Online-Compiler/
├── app/ # Next.js application
│ ├── prisma/
│ │ ├── schema.prisma # Database schema
│ │ ├── seed.ts # Seed script
│ │ └── migrations/
│ ├── public/
│ └── src/
│ ├── app/ # Thin App Router pages & API routes
│ ├── modules/
│ │ ├── interpreter/ # Language runtime (grammar, parser, VM)
│ │ ├── compiler/ # Playground UI + shared editor kit
│ │ ├── billing/ # Pricing, Paddle, entitlements
│ │ ├── practice/ # Practice UI + autograder
│ │ ├── exams/ # Exam take / author UI
│ │ ├── classes/ # Classes & assignments
│ │ ├── auth/ # NextAuth, session UI, email
│ │ ├── admin/ # Admin gate helper
│ │ ├── progress/ # Student progress widgets
│ │ ├── telemetry/ # PostHog wiring
│ │ ├── onboarding/ # Tours & nudges
│ │ ├── feedback/ # Bug report / survey
│ │ ├── share/ # Share buttons
│ │ ├── docs/ # llms.txt + docs TOC
│ │ └── content/ # Built-in examples + FAQ
│ ├── shared/ # Layout, UI primitives, Prisma, SEO
│ ├── theme/ # Theme context, presets, validation
│ └── types/
├── README.md
└── LICENSE
See pseudocode.md for the full syntax reference.
INTEGER, REAL, CHAR, STRING, BOOLEANDECLARE, CONSTANT← or <-INPUT, OUTPUT+, -, *, /, ^, DIV, MOD=, <>, <, >, <=, >=AND, OR, NOTIF/THEN/ELSE/ENDIF, CASE OF/OTHERWISE/ENDCASEFOR/TO/STEP/NEXT, WHILE/DO/ENDWHILE, REPEAT/UNTILPROCEDURE/ENDPROCEDURE, FUNCTION/RETURNS/ENDFUNCTION, CALL, RETURNOPENFILE, READFILE, WRITEFILE, CLOSEFILELENGTH(), LCASE(), UCASE(), SUBSTRING()ROUND(), RANDOM(), INT(), EOF()// single lineTYPE records (dot notation), enums (ordinal arithmetic), pointers (^x, ptr^), SET OF + DEFINEDATE type — dd/mm/yyyy literalsCASE — ranges (1 TO 5 :) and multi-value labelsBYREF / BYVAL (sticky across following params)OPENFILE ... FOR RANDOM, SEEK, GETRECORD, PUTRECORDCLASS/ENDCLASS, INHERITS, PUBLIC/PRIVATE (runtime-enforced), constructor NEW, SUPER, obj <- NEW ClassName(...)ELSE IF — accepted as a two-word alias for ELSEIFOne superset grammar covers both qualifications — all syntax is always available, with no mode toggle.
These steps are for running the app on your own machine while reading the code or preparing a change to send back here. They are not permission to deploy it, or to offer a running copy to anyone else. See License.
git clone https://github.com/Sherlemious/IGCSE-Pseudocode-Online-Compiler
cd IGCSE-Pseudocode-Online-Compiler/app
cp .env.example .env # fill in your secrets
npm install
npm run db:migrate # create tables
npm run db:seed # optional: seed example questions
npm run dev # http://localhost:3000
See .env.example for the full list. Required variables:
| Variable | Description |
|---|---|
DATABASE_URL | PostgreSQL connection string (pooled) |
DIRECT_URL | PostgreSQL direct connection string |
AUTH_SECRET | Random secret for NextAuth session signing (openssl rand -base64 32) |
AUTH_URL | Your app origin (e.g. http://localhost:3000) |
AUTH_GOOGLE_ID / AUTH_GOOGLE_SECRET | Google OAuth credentials |
AUTH_GITHUB_ID / AUTH_GITHUB_SECRET | GitHub OAuth credentials |
NEXT_PUBLIC_POSTHOG_KEY | PostHog project key (leave blank to disable) |
PREMIUM_GATING_ENABLED | Server-side. true gates isPremium questions to paid students / paid-teacher classes (false by default) |
If you see redirect_uri_mismatch, add the exact callback URL in Google Cloud Console:
https://pseudocode-compiler.sherlemious.com/api/auth/callback/googlehttp://localhost:3000/api/auth/callback/googleAlso ensure Authorized JavaScript origins include both https://pseudocode-compiler.sherlemious.com and http://localhost:3000.
npm run db:migrate # run Prisma migrations
npm run db:seed # seed the database
npm run db:studio # open Prisma Studio
npm run lint # ESLint
npm test # run the Vitest suite (interpreter, converters, formatter)
npm run test:watch # Vitest in watch mode
npm run build # production build
If you modify src/modules/interpreter/grammar/Pseudocode.g4, regenerate the TypeScript parser:
npm run antlr:generate
The generated files in src/modules/interpreter/generated/ are committed to the repo — do not edit them by hand.
Pull requests back to this repository are welcome.
npm test and npm run build pass before opening a PRA fork is for proposing changes to this repository. It is not permission to publish or host a separate copy. See License.
Copyright (c) 2026 Abdelrahman Mohammed. All rights reserved.
You may read the source and run it on your own computer for yourself. You may not host it, deploy it, or offer it to anyone else — including for free, for a school, or in a single country — without prior written permission.
Use pseudocode-compiler.sherlemious.com. To ask for permission, email [email protected].
The full terms are in LICENSE.