Repolode
cuixueshe

cuixueshe/earthworm

A TypeScript English-learning app that teaches grammar and vocabulary by having you build sentences with conjunctions.

Stars
11,118
Forks
1,359
Open issues
11
Last commit
2 years ago

What is it?

Earthworm is an English learning project built around constructing sentences with conjunctions. Learners practice combining clauses with connecting words, which is the core method the project is organized around.

The repository is a pnpm monorepo with a Vue client under apps/client and a backend API under apps/api. The backend uses Postgres and Redis, which are started locally through Docker Compose, and Logto is used for user authentication. Course data is loaded into the database with a dedicated upload command.

Setup involves installing dependencies, copying example .env files, starting Docker services, initializing the database schema, and running the API and client dev servers. The project includes Vitest and Cypress tests for the frontend and Jest tests for the backend.

Key features

  • 01Teaches English by building sentences with conjunctions
  • 02Vue client and TypeScript backend API in one pnpm monorepo
  • 03Postgres and Redis services provided through Docker Compose
  • 04Logto-based user authentication
  • 05Course data import and update commands

Use cases

  • Self-studying English grammar through sentence construction
  • Reference implementation of a full-stack TypeScript app with Vue, Postgres and Redis
  • Studying a monorepo setup with Docker-based local development

Quick start

  1. 1

    Enable pnpm via corepack

    corepack enable
  2. 2

    Install dependencies

    pnpm install
  3. 3

    Copy the server environment file and start Docker Compose services

    cp ./apps/api/.env.example ./apps/api/.env
  4. 4

    Initialize the database schema, then start the backend and frontend

    pnpm db:init

Things to know

  • Requires Postgres 14+, Redis 5+, Docker and Node.js 20+ running locally before setup.
  • Setup involves multiple manual steps including restoring Logto data and configuring .env files.

Topics

FAQ

What is earthworm?
A TypeScript English-learning app that teaches grammar and vocabulary by having you build sentences with conjunctions. Earthworm is an English learning project built around constructing sentences with conjunctions. Learners practice combining clauses with connecting words, which is the core method the project is organized around.
Is earthworm free to use? What license does it have?
earthworm is open source under the AGPL-3.0 license. Check the license terms before using it in commercial products.
Is earthworm still maintained?
No commits for 6+ months. The last commit to earthworm was on Nov 14, 2024.
What can I use earthworm for?
Self-studying English grammar through sentence construction Reference implementation of a full-stack TypeScript app with Vue, Postgres and Redis Studying a monorepo setup with Docker-based local development
How do I install earthworm?
Enable pnpm via corepack: corepack enable Install dependencies: pnpm install Copy the server environment file and start Docker Compose services: cp ./apps/api/.env.example ./apps/api/.env Initialize the database schema, then start the backend and frontend: pnpm db:init
Where can I get earthworm?
The source code and installation instructions are on GitHub: https://github.com/cuixueshe/earthworm

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects