ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
IGCSE·A레벨용 의사코드 컴파일러 온라인, 브라우저에서 작성·실행·검증
IGCSE pseudocode compiler online for Cambridge 0478 and A Level 9618. Free editor and runner: write, run and check pseudocode in the browser.
교육TypeScript · JavaGitHub @Sherlemious온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
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.