How feestevam/painel-de-noticia-digital works
Painel Digital de Notícias delivers scheduled content on public display screens and provides an authenticated operator workflow to manage it. Operators log in, create or schedule news and scene content, and the display renders eligible items as a timed carousel with weather and live-news scenes. The backend exposes API routes through controllers, formats responses, and persists news and users. The README documents additional display, upload, forecasting, and feed capabilities; some implementation paths are represented by their exact tree directories because their source was not sampled.
Main entry points: api.js API client · DisplayMode.jsx Display carousel · responseView.js Response formatter · FeedScene.jsx News feed scene
Components 23
Public display
- Display page
client/app/pages/DisplayIndex.jsx - Display carousel
client/app/components/DisplayMode.jsx - Weather scene
client/app/components/WeatherScene.jsx - News feed scene
client/app/components/FeedScene.jsx
Operator management
- Login page
client/app/pages/login.jsx - Session handling
client/lib/auth.js - Management panel
client/app/pages/newspainel.jsx - Content editor
client/app/components/NewsManager.jsx
API and services
- API client
client/lib/api.js - News routes
server/app/routes/newsRoutes.js - News controller
server/app/controller/newsController.js - Authentication controller
server/app/controller/authController.js - Feed controller
server/app/controller/feedController.js - Weather controller
server/app/controller/weatherController.js - G1 RSS service
server/app/service/g1Service.js - Weather service
server/app/service/weatherService.js - Response formatter
server/app/view/responseView.js
Persistence
- News persistence
server/app/model/newsModel.js - User persistence
server/app/model/userModel.js - Prisma database
server/app/model/database.js
Other components
- Viewer
- Open-Meteo
- G1 RSS
Connections 29
- Viewer → Display page: views
README.md - Display page → Display carousel: renders
client/app/pages/DisplayIndex.jsx - Display carousel → Weather scene: renders
client/app/components/DisplayMode.jsx - Display carousel → News feed scene: renders
client/app/components/DisplayMode.jsx - Display carousel → API client: loads content
client/app/pages/DisplayIndex.jsx - Weather scene → API client: requests weather
client/app/components/WeatherScene.jsx - News feed scene → API client: requests feeds
client/app/components/FeedScene.jsx - News feed scene → G1 RSS service: uses
client/app/components/FeedScene.jsx - Viewer → Login page: authenticates
README.md - Login page → Session handling: submits credentials
client/app/pages/login.jsx - Session handling → Authentication controller: posts login
client/lib/auth.js - Authentication controller → User persistence: checks users
server/app/controller/authController.js - Authentication controller → Response formatter: formats response
server/app/controller/authController.js - Session handling → Management panel: stores session
README.md - Management panel → Content editor: hosts editor
client/app/pages/newspainel.jsx - Content editor → API client: submits content
README.md - Management panel → API client: creates news
client/app/pages/newspainel.jsx - API client → News routes: calls news API
client/lib/api.js - News routes → News controller: routes requests
server/app/routes/newsRoutes.js - News controller → News persistence: reads and writes
server/app/controller/newsController.js - News controller → Response formatter: formats response
server/app/controller/newsController.js - News persistence → Prisma database: queries
server/app/model/newsModel.js - User persistence → Prisma database: queries
server/app/model/userModel.js - Feed controller → G1 RSS service: fetches RSS
server/app/controller/feedController.js - Feed controller → Response formatter: formats response
server/app/controller/feedController.js - G1 RSS service → G1 RSS: reads feed
README.md - Weather controller → Weather service: gets forecast
server/app/controller/weatherController.js - Weather controller → Response formatter: formats response
server/app/controller/weatherController.js - Weather service → Open-Meteo: fetches forecast
README.md