Skip to content
ChimeraAnt-DEVPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ChimCode app icon

ChimCode

Learn to code. Then build anything.

A premium, animated coding tutor that takes you from your very first print() all the way to Python bots, C++ engines and live servers β€” with a 2D robot named Mochi who hovers over your mistakes and explains exactly what to fix.

Languages Lessons Achievements License Python FastAPI Android APK


What makes ChimCode different

Most coding apps stop at hello world. ChimCode is built for people who want to build real things β€” Discord bots, HTTP servers, scrapers, systems code β€” and who want a tutor that actually watches their code.

  • πŸ”Œ No server required. ChimCode runs entirely in your browser. The whole app, all 75 lessons and the achievement engine work offline; your account and progress save on your device. There is nothing to sign up for or pay for.
  • 🎨 A real vector icon set. Every icon is hand-drawn SVG that inherits its colour and scales crisply β€” no emoji standing in for design.
  • πŸ€– Mochi, a 2D animated robot tutor. A real canvas-rendered robot with a head, torso, robotic arms and legs. It hovers directly above your mistake with a speech bubble telling you what is wrong and what it should be instead.
  • ✨ Transparent ghost text. When you are missing a piece of code, faint green text appears exactly where you need to type it. You finish the line yourself β€” Mochi never does the work for you.
  • πŸ—£οΈ A bot voice. Mochi explains concepts out loud in a synthesized bot voice while the text appears on screen.
  • 🌟 Super Days. Spend Books to unlock a whole day of only hard stuff. Mochi explains as many times as you need, opens a menu of "same idea, new shape" practice problems, and narrates a full line-by-line walkthrough while you retype it yourself.
  • πŸ† 955 achievements across milestones, every language, lesson mastery, social play, your collection and Super Days.
  • πŸ‘₯ A real social layer. Custom accounts, profile pictures, bios, usernames, followers, friends, online/offline status and live progress.
  • πŸ“– Books currency. Earn Books by learning and spend them on avatars, profile effects, card overlays, themes, banners and Super Days.
  • πŸ’Ž A VIP interface. Glassmorphism, animated gradients, floating orbs, a premium dark theme and six unlockable themes.
  • πŸ“± A native Android app. WebView shell with native Text-To-Speech for Mochi's voice, adaptive launcher icons and an in-app server setup screen.

Downloads

Option 1 β€” Android app (easiest)

A native Android app is included in android/. Everything is bundled inside it, so it works immediately β€” no server, no internet, nothing to set up.

Download the APK β€” chimcode-1.4.0-android.apk (signed, Android 7.0+). Open it, allow Install unknown apps, install.

Build it yourself:

python3 tools/export_static_data.py
cd android
echo "sdk.dir=$ANDROID_HOME" > local.properties
./gradlew assembleDebug               # or assembleRelease for a signed build

Requires JDK 17+ and Android SDK platform 34. See android/README.md.

Option 2 β€” Just open the web app

ChimCode is a static site. No server is needed β€” the app runs entirely in your browser and saves progress on your device.

git clone https://github.com/ChimeraAnt-DEV/ChimCode.git
cd ChimCode/frontend
python3 -m http.server 8080

Then open http://localhost:8080. That is the whole setup. Any static file server works.

Option 3 β€” Run the optional server

A Python server is included for shared accounts, a leaderboard across devices and a REST API. It is completely optional.

./run.sh

Then open http://localhost:12000. run.sh creates a virtual environment, installs the dependencies, generates a secret key and starts the server.

Option 4 β€” Download the ZIP

  1. Click the green < > Code button on GitHub.
  2. Choose Download ZIP, then unzip it.
  3. Follow option 2 or 3 above.

App icon

The full icon set is generated and committed under frontend/assets/icon/ β€” PNGs from 16px to 1024px plus an SVG. Regenerate them any time with:

python frontend/assets/icon/make_icons.py

It uses only the Python standard library, so no image tools are required.


The languages you will master

Language Track highlights
🐍 Python Basics β†’ classes, async, Discord bots, FastAPI servers, scraping, pytest
βš™οΈ C++ Syntax, pointers, STL, memory & smart pointers, templates, TCP servers, profiling
🟨 JavaScript Variables, arrays & methods, async/await, Node.js servers
πŸ”· TypeScript Static types, interfaces, generics, unions
β˜• Java Classes, inheritance, collections, Spring Boot APIs
🎯 C# Console apps, LINQ, async, Tasks
🐹 Go Packages, goroutines & channels, net/http servers
πŸ¦€ Rust Ownership & borrowing, Result/Option, error handling
πŸ—„οΈ SQL SELECT, filtering, joins and aggregation
πŸ–₯️ Bash Scripts, loops, automation and pipes
🎨 HTML & CSS Structure, styling, animations, responsive layout
πŸŸͺ Kotlin Android development, null safety
πŸ•ŠοΈ Swift Apple platforms, optionals and guard
πŸ“ˆ R Vectors, data frames, statistics
🐘 PHP Server-side web scripting
πŸŒ™ Lua Embeddable scripting, tables

Every lesson includes theory, a worked example, a hands-on task, live mistake detection, a multiple-choice check, and most have a bonus challenge.


How Mochi teaches

  1. You type code. The editor analyses it as you go.

  2. A mistake appears. Mochi pops up above that exact line:

    'prnt' is not a python keyword. Did you mean 'print'? β†’ print

  3. Ghost text shows the fix. Faint green text marks where the missing piece goes, so you complete it yourself.

  4. Run & check. You get a score, a checklist and a list of what Mochi found.

  5. Ask Mochi anything. It answers in the dock, in text and out loud.

  6. Watch Mochi build it. A full narrated walkthrough β€” you retype every line.

On a Super Day, step 6 becomes the main event: the bot explains endlessly, opens a menu of variations on the thing you are stuck on, and never writes the answer for you.


Features at a glance

Learning

  • 16 languages, 75 guided lessons
  • Beginner β†’ expert difficulty tiers
  • Live static mistake analysis
  • Bot overlay above the error
  • Ghost-text completion hints
  • Narrated walkthroughs
  • Quizzes and challenges
  • Per-lesson progress tracking

Account & social

  • Email + password accounts
  • Custom username, avatar, bio
  • Public or private profiles
  • Followers and friends
  • Online / offline presence
  • Leaderboard and live feed
  • See anyone's progress & trophies

Progression

  • 955 achievements, 17 categories
  • XP, streaks and levels
  • Books currency
  • Rarity tiers: common β†’ legendary

Customisation

  • 8 avatars, 8 frames
  • 6 profile effects
  • 5 card overlays
  • 6 themes
  • 6 profile banners
  • Super Day boosts

Tech stack

Layer Choice Why
App Vanilla JS + Canvas No build step and no server; runs from a static file
Local backend JavaScript + localStorage The whole API, offline, in the browser
Optional server FastAPI + Uvicorn Shared accounts and a REST API for multi-device use
Shared data Generated JS Curriculum, achievements and shop come from the server source
Database (server) SQLite (stdlib) Zero-config, file-based, easy to reset
Auth (server) PBKDF2 + HMAC JWT (stdlib) Secure hashing and tokens with no dependencies
Android Kotlin + AndroidX WebView Native shell with a Text-To-Speech bridge
Icons stdlib PNG writer Reproducible assets, no tooling required

The curriculum, the 955-achievement engine and the shop live once in Python (server/app/) and are exported to frontend/data/chimdata.js by tools/export_static_data.py. The JavaScript engine and local backend read that same data, so the offline app and the server can never drift apart.

The only third-party runtime dependencies are fastapi, uvicorn and pydantic, and only if you run the optional server.


Project layout

ChimCode/
β”œβ”€β”€ frontend/                  # The whole app β€” runs with no server
β”‚   β”œβ”€β”€ index.html
β”‚   β”œβ”€β”€ styles.css             # Glassmorphism, animations, six themes
β”‚   β”œβ”€β”€ app.js                 # Routing, lessons, shop, profiles, onboarding
β”‚   β”œβ”€β”€ api.js                 # Picks local or server backend automatically
β”‚   β”œβ”€β”€ local.js               # The entire API in the browser (localStorage)
β”‚   β”œβ”€β”€ engine.js              # Grading, mistake detection, ghost text, walkthroughs
β”‚   β”œβ”€β”€ icons.js               # Hand-drawn SVG icon set (no emoji)
β”‚   β”œβ”€β”€ bot.js                 # Mochi: canvas robot + speech-synthesis voice
β”‚   β”œβ”€β”€ editor.js              # Editor, mistake markers, ghost text, bot overlay
β”‚   β”œβ”€β”€ data/chimdata.js       # Generated curriculum, achievements and shop
β”‚   β”œβ”€β”€ manifest.webmanifest
β”‚   └── assets/icon/           # App icons 16β†’1024px, SVG, generator script
β”œβ”€β”€ server/                    # Optional: shared accounts + REST API
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ main.py            # FastAPI app and every API route
β”‚   β”‚   β”œβ”€β”€ database.py        # SQLite schema and helpers
β”‚   β”‚   β”œβ”€β”€ security.py        # PBKDF2 hashing + JWT
β”‚   β”‚   β”œβ”€β”€ engine.py          # Python twin of frontend/engine.js
β”‚   β”‚   β”œβ”€β”€ achievements.py    # The 955-achievement source of truth
β”‚   β”‚   β”œβ”€β”€ shop.py            # Cosmetics catalogue (source of truth)
β”‚   β”‚   └── curriculum/        # Lesson content (source of truth)
β”‚   └── requirements.txt
β”œβ”€β”€ tools/
β”‚   β”œβ”€β”€ export_static_data.py  # server/app/* -> frontend/data/chimdata.js
β”‚   └── test_local_backend.js  # Headless tests for the offline backend
β”œβ”€β”€ android/                   # Native Android app (bundled, offline)
β”‚   β”œβ”€β”€ app/src/main/          # Activity, layout, manifest, launcher icons
β”‚   β”œβ”€β”€ tools/                 # Launcher icon generator
β”‚   └── gradlew                # Gradle wrapper
β”œβ”€β”€ .github/workflows/         # CI that builds the APKs
β”œβ”€β”€ run.sh                     # Launches the optional server
└── README.md

Configuration

All optional β€” sensible defaults apply.

Variable Default Purpose
CHIMCODE_SECRET_KEY random per boot Signing key for JWTs (set this in production)
CHIMCODE_DATA_DIR server/data Where the SQLite database lives
CHIMCODE_SUPERDAY_COST 250 Books required to start a Super Day
CHIMCODE_JWT_HOURS 720 Session lifetime in hours
HOST / PORT 0.0.0.0 / 12000 Bind address for run.sh

API reference

Click to expand the endpoints
Method Path Description
POST /api/auth/register Create an account
POST /api/auth/login Log in, returns a token
GET /api/me Current user
POST /api/heartbeat Refresh online status
GET /api/catalogue All languages
GET /api/languages/{id} One language with lessons
GET /api/lessons/{id} One lesson with checks
POST /api/analyze Static analysis only (no rewards)
POST /api/submit Grade a submission, award rewards
POST /api/challenge Submit a challenge solution
POST /api/quiz Answer a lesson quiz
POST /api/bot/help Ask Mochi for help
GET /api/bot/walkthrough/{id} Narrated walkthrough
POST /api/superday/buy Activate a Super Day
GET /api/progress Lesson progress and stats
GET /api/achievements All achievements and earned state
GET /api/shop Cosmetics catalogue + wallet
POST /api/shop/buy/{id} Buy a cosmetic
POST /api/shop/equip/{id} Equip a cosmetic
POST /api/profile Update bio, avatar, privacy
POST /api/username Change your username
POST /api/onboarding Save onboarding answers
GET /api/users Public profiles
GET /api/users/{username} One profile with trophies
POST /api/follow/{username} Follow / unfollow
POST /api/friends/{username} Add / remove friend
GET /api/leaderboard Top coders by XP
GET /api/feed Live activity feed
GET /api/health Health and content counts

Interactive docs are available at /docs while the server runs.


Reset your data

The database is a single SQLite file. To start fresh:

rm -rf server/data

It will be recreated on the next boot.


Roadmap

  • Real code execution in a sandboxed runner
  • Community-published lessons
  • Mobile app wrapper (PWA install already works)
  • More languages: Haskell, Scala, Elixir, Dart

Contributing

Issues and pull requests are welcome. Please keep the frontend dependency-free and the backend on the standard library wherever practical.


License

Released under the MIT License.


ChimCode β€” because "hello world" was never the goal.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages