The main technologies are MERN (MongoDB, Express, Reactjs, Nodejs) running in Docker. Deployment is on Raspberry Pies. Content creation is done via handcrafted Postman. An implementation of a AWS S3-like service is part of the platform.
A. nodejs server(s)
1. This a server for API, hosted on Rpi's at Zdepski.com.
(node, express, axios, bcrypt, uuid)
2. DB interface, running on RaspberryPi
(node_fetch, uuid, mongoose ... )
3. Reactjs App Server, running on raspberry Pi, accessible from the internet.
(@Redux for state variable management)
(Happily ripped off and adapted from Dave Gray: https://www.youtube.com/watch?v=CvCiNeLnZ00)
B. mongoDB
mongoDB running on RaspberryPi 5 ( 64bit OS)
Apps using this API: Reactjs App, Chrome, PostMan (or ThunderClient in VisualStudio Code)
Reactjs APP: conditional execution based on roles of the user. (not everything works!)
API: conditional routeing based on roles of the user.
C. DB collections:
1. Users: login DB for all users of the app with CRUD features accessible for priviledged users.
2. Carousels : Carousels are created by the platform, Experts, or Users Favorites
3. Content (Social links, Title, Description, AffinityGroups, Keywords)
4. Messages: Messages addressed to a user.
All API endpoints are protectd by ip and domain whitelist. That is, a call to any API must be made from within the platform.
In "Production", the application api can be called from anywhere. In a realdeployment something like CloudFront would be used.
Public API's : UNPROTECTED
/ Front page
/auth Login route
API Endpoints: PROTECTED by login to obtain JWT's
/refresh <- refresh JWT Token
/user <- CRUD for appUsers
/messages <- CRUD for Messages. Platform -> User, User to User <- not yet reimplemented from a previous project
/Home <- the main page of the application
/Logout