Safe360 is a comprehensive web application for managing enterprise safety training, products, and services. It features a modern MERN stack architecture with a robust backend API and a dynamic React frontend.
- Corporate Website: Dynamic pages for Home, About, Services, Products, and Careers.
- Content Management System (CMS):
- Blog Management: Create, edit, and publish safety articles with author attribution.
- Job Board: Manage career listings and review job applications.
- Team Management: Update team member profiles and roles.
- Page Content: Edit static page content via the admin dashboard.
- User Management: Admin authentication, profile management, and role-based access.
- Media Library: Manage uploaded images and documents.
- Analytics: Dashboard overview of site activity and content metrics.
- SEO Optimized: Built-in meta tag management for better search engine visibility.
- Frontend: React (Vite), TailwindCSS, Framer Motion, Lucide React
- Backend: Node.js, Express, MongoDB, Mongoose
- Authentication: JWT (JSON Web Tokens), Argon2
- Testing: Node.js native test scripts
Safe360/
├── automation/ # Automation Scripts (Not for deployment)
│ ├── generate-pdfs.js # PDF Generation
│ └── generate-screenshots.js # Screenshot Capture
├── client/ # React Frontend Application
│ ├── public/ # Static Assets (favicon, manifest)
│ ├── src/ # Application Source Code
│ │ ├── components/ # Reusable UI Components
│ │ ├── context/ # Global Context Providers
│ │ ├── pages/ # Page Components (Routes)
│ │ └── ...
│ ├── index.html # HTML Entry Point
│ ├── vite.config.js # Vite Bundler Configuration
│ ├── tailwind.config.js # TailwindCSS Configuration
│ └── postcss.config.js # PostCSS Configuration
├── server/ # Node.js/Express Backend
│ ├── middleware/ # Custom Middleware (Auth, Uploads)
│ ├── models/ # Mongoose Database Schemas
│ ├── routes/ # API Endpoint Definitions
│ ├── test_cases/ # Validation & Test Scripts
│ ├── uploads/ # Local File Storage (Media/Docs)
│ ├── server.js # Server Entry Point
│ └── env.example # Environment Variable Template
├── .gitignore # Git Ignored Files
├── eslint.config.js # Code Linting Configuration
└── README.md # Project Documentation
- Node.js: v18.0.0 or higher
- MongoDB: Local instance running on port 27017 or a MongoDB Atlas connection string.
- Git: For version control.
- Navigate to the server directory:
cd server - Install dependencies:
npm install
- Environment Configuration:
- Copy the example environment file:
(Windows:
cp env.example .env
copy env.example .env) - Open
.envand configure your settings:MONGO_URI=mongodb://localhost:27017/safe360 PORT=5001 # Must be 5001 for client compatibility JWT_SECRET=your_secure_secret_key_here
- Copy the example environment file:
- (Optional) Seed Application Data:
Populate the database with initial users, jobs, and blog posts:
node test_cases/scripts/seed.js
- Start the Development Server:
Server will start on
npm run dev
http://localhost:5001
- Open a new terminal and navigate to the client directory:
cd client - Install dependencies:
npm install
- Start the Development Server:
npm run dev
- Open your browser to the URL shown (usually
http://localhost:5173).
- Login URL:
/admin/login - Default Credentials (if seeded):
- Username:
admin - Password:
password123
- Username:
Verified Environment: Windows 11, Node v18+, MongoDB v6.0. Last Application Verification: 2026-01-04