The Sentralia is a Open Source and Powerful, fullstack solution for managing user requests, role-based administration, and ticket workflows. Built using a modern React frontend and a Node.js/Express backend, it offers a professional-grade foundation for SaaS, internal teams, or client support systems.
Designed with security, scalability, and usability in mind, the system includes:
- 🌐 Full React frontend (SPA) with TailwindCSS
- 🔒 Secure Node.js + Express backend
- ☁️ MongoDB for request storage
- 🔐 JWT + OAuth (Discord/Google) authentication
- 🔔 Email notifications & Discord webhook logging
- 🧑💼 Admin dashboards for user/request management
- 📱 Responsive design for mobile and desktop
- 🎫 Internal/external support ticketing
- 🛠️ Workflow automation in startups or teams
- 🧩 SaaS foundation for request-based portals
- 🧑💼 Role-based approval systems
| Layer | Tools/Technologies |
|---|---|
| Frontend | React, TailwindCSS, DaisyUI, Axios |
| Backend | Node.js, Express.js, Mongoose |
| Database | MongoDB Atlas |
| Auth | Discord + Google OAuth, JWT |
| Notifications | Nodemailer, Discord Webhooks |
| UI/UX | React Hot Toast, React Icons |
- JWT-secured session auth
- Admin-only protected routes
- IP + device logging for login events
- Role-based access control
- Customizable
.env-driven config - Webhook logs for errors and activity
- Node.js v14+
- MongoDB Atlas or local MongoDB
- Discord & Google OAuth apps
- Gmail App Password (for email)
- Discord Webhook URLs
.env example for backend (/API/.env):
# rename file to .env for production
SESSION_SECRET=your_secret
PORT=3001
MONGODB_URI=your_mongo_uri
GOOGLE_CLIENT_ID=xxx
GOOGLE_CLIENT_SECRET=xxx
GOOGLE_CLIENT_REDIRECT=https://your-domain.com/google/callback
DISCORD_CLIENT_ID=xxx
DISCORD_CLIENT_SECRET=xxx
DISCORD_REDIRECT_URI=https://your-domain.com/callback
EMAIL=your@gmail.com
EPASS=your_gmail_app_password
JWT_SECRET=strong_random_value
ADMIN_ID=admin_mongo_id
ERROR_WEBHOOK=discord-webhook-for-tracking-errorlogs
USER_AUTH_WEBTOKEN=https://discord.com/api/webhooks/…
WEB_LOGS=discord-webhook-for-all-api-logs
WEB_TOKEN=discord-webhook-for-request-update-notificationread about it at https://docs.notreal003.org
cd API
npm install
cp .env.example .env
# Edit the .env file
npm start # Or use: npx nodemon index.js
- Provider Endpoint (files) Notes
- Discord /auth/internal/discord Live, fully tested
- Google /auth/internal/google Live, - fully supported
- GitHub /auth/internal/github Disabled (can enable in code)
- Email /auth/internal/e-signin OTP-based (disabled by default) & more
- Method Route Description
- POST /requests Submit new request
- GET /requests Fetch user’s requests
- PUT /requests/:id/status Admin: update status
- PATCH /admins/staff/manage/:userId/role Assign admin roles
- PUT /admins/staff/demote/:userId Remove admin
- GET /admin/requests View all requests (admin)
- PUT /admin/users/block Block a user & more
• Visit /admins — protected admin interface • Promote via:
PATCH /admins/staff/manage/{userId}/role
{
"role": "admin"
}
(This will require owner permission)
cd Frontend
npm install
Create .env in /Requests:
REACT_APP_API=/api
REACT_APP_APIURL=fullapiurl(https://api.notreal003.org (for auth workflow)
CI=false
REACT_APP_DELETE_KEY=xxx (GDPR delete key as in BACKEND)
REACT_APP_MAIN_API=fullapiurl
Start app:
npm start # Dev
npm run build # Production build
- 🔐 Discord/Google OAuth login.
- 🧾 Request forms: reports, support, applications.
- 🧑 User dashboard with history & statuses.
- 🧠 Admin panel for request/user management.
- 📧 Email alerts with review messages
- 💻 IP tracking and logs.
- 📱 Responsive UI across devices.
- 🌐 Live Site: request.notreal003.org
- 💬 Discord: Join Discord Server
- 📧 Email: noreply.notreal003@gmail.com
- Sentralia was known as Request Management Portal