joematthews / simple-slides

FORK: See the link to Aaron Krauss's simple-slides for current up to date changes. I use this fork for development only, branches on here should not be considered anywhere near stable until a PR is made for the upstream project.

Home Page:https://simpleslides.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Simple Slides

Simple Slides is a response and text-first presentation tool that keeps your audience engaged, and is built with:

  • Laravel
  • Vue + TypeScript
  • PostgreSQL

Presentations built with Simple Slides typically focus on:

  • Prioritizing text-content
  • Low amount of content per slide
  • Many slides, and changing through slides quickly

To Install

composer install

This project uses Laravel Sail, which is basically a built-in Docker wrapper for Laravel applications. View their documentation for more details.

Ideally, you should set an alias for the sail command, to make it much shorter to use:

alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'

Note: If you have run a Laravel Sail project before, you may have already created this alias.

To Run

# In one terminal:
sail up

# Then, in another
sail npm run dev

Autoformatting

Via Laravel pint

# Laravel

sail pint

Linting

# Back-end (Laravel)
sail bin phpstan analyse

# Front-end (Vue)
sail npx vue-tsc

Running the Tests

# Back-end (Laravel)
sail artisan test

# Front-end (Vue)
sail npx vitest

To Generate Thumbnails for Presentations

This uses puppeteer and Browsershot, which requires some extra config on top of Laravel Sail. To configure this, you need to attach to the container and run the ./docker/sail-extra.sh command:

docker compose exec laravel.test sh
> ./docker/sail-extra.sh

Recommended IDE Setup

Type Support For .vue Imports in TS

TypeScript cannot handle type information for .vue imports by default, so we replace the tsc CLI with vue-tsc for type checking. In editors, we need TypeScript Vue Plugin (Volar) to make the TypeScript language service aware of .vue types.

If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a Take Over Mode that is more performant. You can enable it by the following steps:

  1. Disable the built-in TypeScript Extension
    1. Run Extensions: Show Built-in Extensions from VSCode's command palette
    2. Find TypeScript and JavaScript Language Features, right click and select Disable (Workspace)
  2. Reload the VSCode window by running Developer: Reload Window from the command palette.

About

FORK: See the link to Aaron Krauss's simple-slides for current up to date changes. I use this fork for development only, branches on here should not be considered anywhere near stable until a PR is made for the upstream project.

https://simpleslides.dev


Languages

Language:PHP 60.4%Language:Vue 17.4%Language:Blade 9.8%Language:TypeScript 7.6%Language:JavaScript 2.7%Language:Dockerfile 0.8%Language:Shell 0.7%Language:CSS 0.6%