[!note] legacy project I've moved reconstructed this project with NextJS. Repo found @ https://github.com/wchorski/network-bulletin
Digital Signage on a MERN stack
This app is terribly optimized, and kinda ugly
- Slides data with multiple front end templates
- Admin backend with user managment CRUD
- Role based Authentication with JWT Admin, Editor, User
- Client side Auth protection per page
- Deployable via Docker
find default user login info in ./server/config/defaultUsers.json
- i run MongoDB Community Edition locally on my machine and tap into it with MongoDB Compass. Node.js for the app.
cd ./server
cp .env.dev .env
|npm i
cd ./client
cp .env.dev .env
|npm i
- allow multiple frontend domains in
allowedOrigins.js
(docker compose env variable gets added automatically) - node dev environment
cd ./server
npm run dev
will kick up express and react at the same time with concurrently .
cd ./client
cp .env.prod .env
- change
./client/.env
with prod variables - edit all
environment:
variables incompose.yml
docker compose up -d --build
docker compose down --remove-orphans
List 1
+ ✅ create new slide editor
+ edit existing slide editor
+ multiple templates views for slide data
+
+ edit buttons each slide on bottom right [ select, edit, delete ]
+ make this page view all collections
+ select and batch delete
+
+ image: pic from previously uploaded pics
+ check to see if pic is already uploaded by name and use that
+ ✅ extra option to load "baked slides" (like an exported Power Point)
+ re-order via drag n drop
+ set slide advance time
+ hide / show arrows
+
+ CRUD collections
+ drag and drop to reorder
+ shuffle slides
+ randomize slides
+ create new blank collection
+ add multi images as just slides (i.e. powerpoint pressy)
+ choose the active collection
+ undo button on deletions
+
+ need to fix auto play time when also allowing manual advancing
+ advance with arrow keys
+ refresh page if => slide count request returns a greater or less than number than current slides
+ Player settings Hide arrows
+
+ block users from editing certain collections
+ remove bootstrap stylings in 'client/index.html'
+ set max num of slides per collection
+ set max file upload limit
+ activate / deactivate collections
+ set slide advance global time
+
+ ✅ dynamically create *Players* for each active collection
+