Skip to content

emmabyte/study-stack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StudyStack Test Deploy

StudyStack is an open-source starter kit for building customizable online learning platforms. Originally developed for a private project that was later dissolved, it's been repurposed and made public as a flexible, community-driven codebase. It's not a full SaaS — think of it as a demo, a proof of concept, and a foundation you can build on.

Built with SvelteKit and the latest features from Svelte 5, it integrates Prisma, Tailwind CSS, and Playwright for a modern developer experience.

✨ Features

  • Engaging course and lesson interface
  • Secure user authentication
  • Type-safe DB layer using Prisma
  • End-to-end testing with Playwright
  • Clean, responsive UI powered by Tailwind CSS

🤝 Contributing

StudyStack was built by a solo dev and is released for the community. Contributions are welcome! Feel free to open an issue or PR — especially for:

  • Bug fixes
  • Feature suggestions
  • Docs improvements

Just please keep in mind that this is not a full product with active long-term support — it's more of a public template for others to learn from or fork into their own projects.


🚀 Getting Started

Follow the platform-specific setup instructions below to get your development environment up and running. Once set up, start your dev servers with:

pnpm dev           # Standard SvelteKit dev server
pnpm vercel-dev    # Simulates Vercel Edge config for closer production testing

You’ll need Node.js (via NVM), Git, PlanetScale CLI, and other common development tools.


🛠 Development Environment Setup

MacOS

  1. Install Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Install Node Version Manager: NVM Docs
  2. Install Git: brew install git
  3. Install PlanetScaleCLI: brew install planetscale/tap/pscale
  4. Install JQ: brew install jq
  5. Install MySQL CLI: brew install mysql-client
  6. Install GitHub CLI: brew install gh
  7. Install Node.js: nvm install --lts
  8. Confirm Node install: node -v
  9. Enable PNPM via corepack: corepack enable pnpm
  10. Install PNPM: corepack use pnpm@latest
  11. Clone the repo:
git clone git@github.com:shawn636/study-stack.git
  1. Install dependencies: pnpm install
  2. (Optional) Set Zsh as default terminal in VS Code
  3. Run dev servers using pnpm dev and/or pnpm vercel-dev

Windows

  1. Open PowerShell and install Scoop:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
  1. Install Git
  2. Install NVM for Windows
  3. Install PlanetScale CLI & MySQL:
scoop bucket add pscale https://github.com/planetscale/scoop-bucket.git
scoop install pscale mysql
  1. Install JQ: scoop install main/jq
  2. Install GitHub CLI: scoop install gh
  3. Install Node.js: nvm install --lts
  4. Confirm install: node -v
  5. Enable corepack: corepack enable pnpm
  6. Install PNPM: corepack use pnpm@latest
  7. Clone the repo: git clone git@github.com:shawn636/study-stack.git
  8. Install dependencies: pnpm install
  9. Start dev servers: pnpm dev and/or pnpm vercel-dev

Ubuntu

  1. Install NVM:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
  1. Install Git: sudo apt install git-all
  2. Install PlanetScale CLI
  3. Install JQ: sudo apt install jq
  4. Install GitHub CLI:
sudo mkdir -p -m 755 /etc/apt/keyrings \
&& wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | \
sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
&& sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | \
sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update && sudo apt install gh -y
  1. Install MySQL CLI: sudo apt-get install mysql-client
  2. Install Node.js: nvm install --lts
  3. Confirm install: node -v
  4. Enable corepack: corepack enable pnpm
  5. Install PNPM: corepack use pnpm@latest
  6. Clone the repo: git clone git@github.com:shawn636/study-stack.git
  7. Install dependencies: pnpm install
  8. Run servers: pnpm dev and/or pnpm vercel-dev

Scripts

  • pnpm run dev – Local dev server
  • pnpm run build – Build for production
  • pnpm run test – Run Playwright tests
  • pnpm run lint – Format and lint the code
  • pnpm run check – Type and syntax checking

Testing

End-to-end testing is handled via Playwright and Vitest.

pnpm run test

You can also run other test-related scripts as needed for development or CI.


📄 License

This project is licensed under the MIT License.


If you end up using this project for something cool, let me know — I’d love to check it out!