A complete full-stack web application for Stackora Technologies with backend API, React frontend, and admin dashboard.
stackora-app/
βββ backend/ # Node.js + Express API
β βββ models/ # MongoDB schemas
β βββ routes/ # API endpoints
β βββ middleware/ # Auth & validation
β βββ server.js # Main server file
βββ frontend/ # React application
β βββ src/
β β βββ components/ # Reusable components
β β βββ pages/ # Page components
β β βββ api/ # API client
β βββ public/
βββ uploads/ # File uploads (resumes, images)
- Modern landing page with hero section
- Dynamic services showcase
- Career listings with filtering
- Contact form with email notifications
- Project portfolio
- Fully responsive design
- Secure authentication (JWT)
- Manage services, projects, careers
- View and respond to contact inquiries
- Review job applications
- Upload and manage content
- RESTful API architecture
- MongoDB database
- JWT authentication
- File upload handling
- Email notifications
- Rate limiting & security
- Node.js (v16 or higher)
- MongoDB (local or Atlas)
- npm or yarn
# Install backend dependencies
npm install
# Install frontend dependencies
cd frontend && npm installCreate a .env file in the root directory:
PORT=5000
NODE_ENV=development
MONGODB_URI=mongodb://localhost:27017/stackora
JWT_SECRET=your_secure_jwt_secret_key_change_this
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-app-password
ADMIN_EMAIL=admin@stackora.com
FRONTEND_URL=http://localhost:3000mkdir -p uploads/resumes
mkdir -p uploads/projectsRun this script to create your first admin:
node backend/scripts/createAdmin.jsOr use MongoDB directly:
// In MongoDB shell or Compass
db.admins.insertOne({
name: "Admin",
email: "admin@stackora.com",
password: "$2a$12$hashed_password_here", // Use bcrypt to hash
role: "super-admin",
isActive: true,
createdAt: new Date()
})# Run both backend and frontend concurrently
npm run dev
# Or run separately:
# Terminal 1 - Backend
npm run server
# Terminal 2 - Frontend
cd frontend && npm start# Build frontend
cd frontend && npm run build
# Start backend (serves built frontend)
npm startGET /api/services- Get all servicesGET /api/careers- Get all careersGET /api/careers/:id- Get single careerGET /api/projects- Get all projectsPOST /api/contact- Submit contact formPOST /api/applications- Submit job application
POST /api/admin/login- Admin loginGET /api/admin/me- Get current adminPOST /api/admin/create- Create new admin (super-admin only)
- Services:
POST, PUT, DELETE /api/services - Careers:
POST, PUT, DELETE /api/careers - Projects:
POST, PUT, DELETE /api/projects - Contacts:
GET, PATCH /api/contact - Applications:
GET, PATCH /api/applications
- JWT authentication
- Password hashing with bcrypt
- Rate limiting
- Helmet.js security headers
- CORS configuration
- Input validation
- File upload restrictions
- name, email, password
- role (super-admin, admin, editor)
- isActive, lastLogin
- title, description, icon
- features, pricing
- isActive, order
- title, department, location, type
- description, responsibilities, requirements
- salary, isActive, applicationCount
- career reference
- firstName, lastName, email, phone
- resume, coverLetter, portfolio
- status, notes
- title, description, client
- category, tags, technologies
- image, url, featured
- name, email, phone, company
- message, status, notes
/- Home page/services- Services listing/careers- Career opportunities/careers/:id- Career details & application/contact- Contact form/admin/login- Admin login/admin/*- Admin dashboard (protected)
For Gmail:
- Enable 2-factor authentication
- Generate an App Password
- Use the app password in
.env
- Deploy to Heroku, Railway, Render, or DigitalOcean
- Set environment variables
- Connect to MongoDB Atlas
- Build:
cd frontend && npm run build - Deploy to Vercel, Netlify, or serve from backend
- Use MongoDB Atlas for production
- Set up backups and monitoring
- Blog/News section
- Client testimonials
- Newsletter subscription
- Advanced analytics dashboard
- Email templates
- Multi-language support
- Payment integration
- Live chat support
This is a proprietary application for Stackora Technologies.
Proprietary - All rights reserved by Stackora Technologies
For support, email: support@stackora.com