With NarrowBlast:
Custom Slide time:
After a students has uploaded a slide and had it approved, they can purchase and use slide time to display that slide.
This item expires after a certain duration. The current durations available are either 1, 7 or 14 days.
Power-up: JavaScript Slide:
Allows a student to enhance their slide with JavaScript. This is useful for adding animated elements to the slide. Students select a slide that is currently active (has slide time applied). JavaScrip will be enabled for this slide permanently.
This is a single use item which cannot be retrieved from a slide.
When we've been up and running for a couple months, we'll add the following features:
Power-up: Slide Invite System:
Students can use JavaScript in their slide (included with the power-up) to request an invite/QR-code to display on their slide. Users that scan the QR-code or visit the invite link will 'join the slide'. The student that created the slide can decide:
This allows for students to create interactive slides that can be used for:
npm install
npm run dev
composer install
.env
file:
SD_CLIENT_ID
and SD_CLIENT_SECRET
with the correct (secret) app secrets for the sdclient OpenID authSLIDE_SHOW_SECRET_TICK_KEY
with a random secret string. This is used to prevent spamming of the slideshow tick endpoint. When setting up a narrowcasting screen you will have to enter this.USER_CONTENT_PATH
with the path to the directory where uploaded files should be stored. This directory should be accessible by the webserver.USER_CONTENT_URL
with the URL to the directory where uploaded files should be accessible from. This domain should be different from the domain where the website is hosted. This is to prevent XSS attacks.DISABLE_INVITE_SYSTEM
to true
to disable the invite system. We will enable this at a later stage.php artisan storage:link
(needed for shop images)php artisan key:generate
php artisan migrate --seed
(The seeder automatically adds the shop items and 1 screen)php artisan serve
The website is now available for:
https://narrowblast.curio.codes/screen/1
https://narrowblast.curio.codes/
https://narrowblast.curio.codes/admin
Replace https://narrowblast.curio.codes
with http://localhost:8000
if you are running locally
Since you're running locally, you must disable SSL verification. This is done by adding SD_SSL_VERIFYPEER=no
to your .env.
This is only recommended for during development and only on trusted networks. On production you should just enable HTTPS.
sudo chown -R www-data:www-data /path/to/this/repo/root
php artisan queue:work --stop-when-empty
to run the queue manually (wait 5 minutes after adding test slide)* * * * * cd /path-to-your-project && php artisan queue:work --stop-when-empty >> /dev/null 2>&1
USER_CONTENT_PATH
and USER_CONTENT_URL
in the .env
file.<VirtualHost _default_:443>
...
# Ensure this Directory points to the symlink path apache follows (and not the actual storage directory)
<Directory /var/www/html/narrowblast-usercontent/public/storage/>
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</Directory>
...
</VirtualHost>
We work with the GitHub Flow, so all code changes happen through pull requests. Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests:
main
.main
branch of this repo.