A modern, full-stack portfolio application with an admin dashboard built using the MERN stack
Features β’ Quick Start β’ Documentation β’ Deployment β’ Contributing
|
|
|
|
mern-profile/
βββ π backend/ # Node.js + Express API
β βββ controller/ # Route controllers
β βββ models/ # Mongoose schemas
β βββ routes/ # API routes
β βββ middlewares/ # Custom middlewares
β βββ utils/ # Utility functions
β
βββ π dashboard/ # React Admin Dashboard
β βββ src/
β β βββ components/ # Reusable components
β β βββ pages/ # Page components
β β βββ store/ # State management
β βββ public/ # Static assets
β
βββ π portfolio/ # React Portfolio Frontend
β βββ src/
β β βββ components/ # UI components
β β βββ pages/ # Route pages
β βββ public/ # Assets
β
βββ π .github/ # GitHub Actions & Templates
β βββ workflows/ # CI/CD pipelines
β βββ ISSUE_TEMPLATE/ # Issue templates
β
βββ π .devops/ # DevOps Configuration
β βββ docker/ # Dockerfiles
β βββ kubernetes/ # K8s manifests
β βββ nginx/ # Nginx configs
β
βββ π scripts/ # Automation Scripts
β βββ setup.* # Project setup
β βββ build.* # Build scripts
β βββ deploy.* # Deployment
β βββ test.* # Testing
β
βββ π tools/ # Utility Tools
β βββ env-validator.js # Env validation
β βββ health-check.js # Health monitoring
β βββ db-backup.js # Database backup
β βββ db-restore.js # Database restore
β
βββ π docs/ # Documentation
β βββ guides/ # User guides
β βββ api/ # API reference
β βββ deployment/ # Deploy guides
β βββ development/ # Dev docs
β
βββ π tests/ # Test suites
βββ unit/ # Unit tests
βββ integration/ # Integration tests
βββ e2e/ # End-to-end tests
| Tool | Version | Download |
|---|---|---|
| Node.js | 18.x or 20.x | nodejs.org |
| MongoDB | 6.x or 7.x | mongodb.com |
| npm | 9.x+ | Included with Node.js |
| Git | Latest | git-scm.com |
# Clone the repository
git clone https://github.com/Mostafa-SAID7/Mern-Profile.git
cd Mern-Profile
# Install all dependencies (Windows)
.\scripts\setup.ps1
# Install all dependencies (Linux/Mac)
chmod +x scripts/setup.sh && ./scripts/setup.sh
# Generate environment configuration
node tools/generate-env.js
# Configure your .env file
# Edit backend/.env with your credentials# Terminal 1 - Backend API
cd backend && npm run dev
# Terminal 2 - Admin Dashboard
cd dashboard && npm run dev
# Terminal 3 - Portfolio Frontend
cd portfolio && npm run devAccess the applications:
- π Portfolio: http://localhost:3000
- ποΈ Dashboard: http://localhost:3001
- π Backend API: http://localhost:4000
Comprehensive documentation is available in the docs/ folder:
| Document | Description |
|---|---|
| π Getting Started | Complete setup and installation guide |
| ποΈ Architecture | System design and architecture overview |
| π API Reference | Complete API endpoint documentation |
| π Deployment Guide | Deploy to various platforms |
| π³ Docker Guide | Docker and containerization |
| βΈοΈ Kubernetes Guide | Kubernetes deployment |
| βοΈ Environment Variables | Configuration reference |
| ποΈ Database Schema | MongoDB schema documentation |
| π€ Contributing | Contribution guidelines |
| π§ Troubleshooting | Common issues and solutions |
cd .devops
docker-compose up -d |
kubectl apply -f .devops/kubernetes/ |
vercel --prod |
- Vercel - Deployment Guide
- Heroku - Deployment Guide
- Railway - Deployment Guide
- DigitalOcean - Deployment Guide
- AWS - Deployment Guide
- Azure - Deployment Guide
# Run all tests (Windows)
.\scripts\test.ps1
# Run all tests (Linux/Mac)
./scripts/test.sh
# Run specific tests
cd backend && npm test
cd dashboard && npm test
cd portfolio && npm test| Tool | Description | Usage |
|---|---|---|
| π env-validator | Validate environment variables | node tools/env-validator.js |
| π₯ health-check | Check service health status | node tools/health-check.js |
| πΎ db-backup | Backup MongoDB database | node tools/db-backup.js |
| π db-restore | Restore MongoDB database | node tools/db-restore.js |
| βοΈ generate-env | Generate .env template | node tools/generate-env.js |
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Mostafa SAID
- GitHub: @Mostafa-SAID7
- Repository: Mern-Profile
Give a βοΈ if this project helped you!
Made with β€οΈ using the MERN Stack