This is a fully functional web application built with pure HTML, CSS, and Node.js - no React, no TypeScript, no build tools required. The application uses:
- Backend: Express.js server
- Frontend: HTML/CSS/JavaScript (plain vanilla)
- Templating: EJS for dynamic page rendering
- Database: MongoDB (optional, with JSON fallback)
- Package Manager: npm/yarn
The application has been completely migrated away from React/TypeScript to pure HTML/CSS and vanilla JavaScript, maintaining all functionality and appearance.
- Install dependencies:
npm install- Start the server:
npm start- Open in browser: http://127.0.0.1:3000 (or http://127.0.0.1:3001)
.
├── public/ # Static assets
│ ├── css/ # Stylesheets
│ │ └── styles.css # Main stylesheet with design system
│ └── js/ # JavaScript files
│ └── main.js # Client-side interactivity
├── views/ # EJS templates
│ ├── index.ejs # Landing page with all sections
│ ├── login.ejs # Login page
│ ├── dashboard.ejs # User dashboard
│ ├── book_program.ejs# Booking form
│ └── ...
├── models/ # MongoDB models
├── scripts/ # Utility scripts
├── server.js # Express server
├── package.json # Dependencies
└── .env # Environment variables
✅ Landing Page - Complete landing page with hero, programs, stats, about, FAQ, contact sections ✅ User Authentication - Login/logout with session management ✅ Dashboard - User dashboard for logged-in members ✅ Program Booking - Guests and members can book programs ✅ Admin Panel - Manage users and bookings (founder role) ✅ Responsive Design - Mobile-friendly using pure CSS ✅ No Build Step - Run directly with Node.js, no compilation needed ✅ Modern CSS - Uses CSS custom properties (variables) and flexbox/grid ✅ Vanilla JavaScript - Pure client-side JS for interactivity ✅ MongoDB Integration - Optional database with JSON fallback
The project is production-ready and requires no build step. Simply edit the files in public/, views/, or server.js and refresh your browser.
- public/css/styles.css - Complete design system with variables, responsive layouts, and component styles
- public/js/main.js - Client-side features like mobile menu toggle, form validation, smooth scrolling
- views/*.ejs - Server-side templated HTML pages
- server.js - Express routes and application logic
GET /- Landing pageGET /programs- Programs pageGET /about- About pageGET /events- Events pageGET /faq- FAQ pageGET /contact- Contact page (displays contact form)POST /contact- Submit contact formGET /login- Login pagePOST /login- Submit loginGET /logout- LogoutGET /book- Booking formPOST /book/submit- Submit bookingGET /dashboard- User dashboard (requires auth)GET /dashboard/:page- Dashboard pages (staff, schools, events, etc.)GET /admin/users- Manage users (founder only)GET /admin/bookings- Manage bookings (founder only)
Create a .env file:
PORT=3000
SESSION_SECRET=your-secret-key
MONGODB_URI=mongodb://localhost:27017/apv-ventures
NODE_ENV=developmentIf MongoDB is configured, the app uses Mongoose models. Otherwise, it can work with JSON storage in the data/ folder.
A Node.js web application for managing leadership and development programs, built with Express.js, MongoDB, and plain HTML/CSS/JavaScript.
- Landing Page: Professional landing page for Arrow-Park Ventures
- User Authentication: Login system with session management
- Dashboard: Comprehensive dashboard with statistics and navigation
- MongoDB Integration: Database connectivity for data persistence
- Responsive Design: Mobile-friendly interface
- Offline Capable: Runs completely offline once set up
- Node.js (v14 or higher)
- MongoDB (local installation or cloud service like MongoDB Atlas)
- npm or yarn package manager
-
Clone the repository
git clone <repository-url> cd scoutmate-hub-main
-
Install dependencies
npm install
-
Set up MongoDB
- Install MongoDB locally or use MongoDB Atlas
- Update the connection string in
.envfile
-
Configure environment variables Create a
.envfile in the root directory:PORT=3000 SESSION_SECRET=your-secret-key-change-this-in-production MONGODB_URI=mongodb://localhost:27017/apv-ventures -
Start the application
npm start
Or for development with auto-restart:
npm run dev
-
Access the application Open your browser and navigate to
http://localhost:3000
- Visit the home page to see the Arrow-Park Ventures landing page
- Click "Member Login" to access the dashboard
- Use demo credentials:
founder@scoutacademy.com/admin - After login, you'll be redirected to the dashboard
- View statistics and recent activities
- Navigate between different sections using the sidebar
- Access various management features
scoutmate-hub-main/
├── server.js # Main server file
├── package.json # Dependencies and scripts
├── .env # Environment variables
├── views/ # EJS templates
│ ├── index.ejs # Landing page
│ ├── login.ejs # Login page
│ ├── dashboard.ejs # Dashboard page
│ └── 404.ejs # 404 error page
├── public/ # Static assets
│ ├── css/
│ │ └── styles.css # Main stylesheet
│ ├── js/
│ │ ├── main.js # General JavaScript
│ │ └── dashboard.js # Dashboard-specific JS
│ └── favicon.ico # Favicon
├── models/ # MongoDB models (to be created)
├── routes/ # Route handlers (to be created)
└── middleware/ # Custom middleware (to be created)
The application uses MongoDB with Mongoose. Planned models include:
- User: User accounts and authentication
- School: Partner schools information
- Program: Scouting programs and activities
- Event: Scheduled events and camps
- Student: Student registrations and progress
GET /- Landing pageGET /login- Login pagePOST /login- Process loginGET /logout- LogoutGET /dashboard- Main dashboardGET /dashboard/:page- Dashboard sectionsGET /api/dashboard-data- Dashboard statistics (JSON)
- Backend: Node.js, Express.js
- Database: MongoDB with Mongoose
- Frontend: HTML5, CSS3, Vanilla JavaScript
- Templating: EJS
- Session Management: express-session
- Styling: Custom CSS with CSS Variables
- Icons: Inline SVG icons
- Create a new EJS template in the
views/directory - Add the route in
server.js - Add navigation links if needed
- Style the page in
public/css/styles.css
- Create Mongoose models in the
models/directory - Implement CRUD operations in route handlers
- Update the API endpoints accordingly
- Use CSS custom properties (variables) for colors and common values
- Follow the existing design system
- Ensure responsive design for mobile devices
- Use semantic HTML and accessible markup
- Set
NODE_ENV=productionin environment variables - Use a production MongoDB instance
- Set a strong
SESSION_SECRET - Configure proper CORS settings if needed
- Use a process manager like PM2
NODE_ENV=production
PORT=3000
SESSION_SECRET=your-very-secure-secret-key
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/scoutmate
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License.
For support or questions, please contact the development team or create an issue in the repository.