Enterprise-Grade Full-Stack Portfolio Platform
Built with React 19, TypeScript, Express, OAuth, 2FA, Real-Time Monitoring & AI Chatbot
π Live Demo β’ π Documentation β’ π Report Bug β’ π‘ Request Feature
- Overview
- Screenshots
- Key Features
- Tech Stack
- Quick Start
- Development
- Docker Deployment
- Environment Variables
- Contributing
- License
- Contact
Neverland Studio is a production-ready, full-stack portfolio platform built with cutting-edge technologies. It features a modern React 19 frontend with TypeScript, a robust Express backend with MySQL, complete authentication system with OAuth and 2FA, user dashboard, real-time monitoring, and an AI-powered chatbot assistant.
- β Production Ready - Enterprise-grade architecture with best practices
- β Type Safe - Full TypeScript implementation for both frontend and backend
- β Secure - JWT authentication, OAuth 2.0, 2FA, reCAPTCHA, rate limiting
- Real-Time Monitoring - Netdata integration for live server metrics
- β Modern Stack - React 19, Vite, Express, Sequelize ORM
- β Docker Ready - Multi-stage builds and docker-compose configuration
- β Premium UI/UX - Responsive design with smooth animations
Full-featured portfolio platform with modern design, responsive layout, and comprehensive features
Platform Features Showcased:
- π¨ Modern landing page with smooth animations
- π Advanced authentication with OAuth & 2FA
- π Real-time monitoring dashboard with Netdata integration
- π€ Comprehensive user profile management
- β‘ High-performance responsive design
- π Dark mode optimized interface
Powerful Command Center: A fully integrated dashboard for complete platform management.
- π Advanced Analytics - Real-time performance metrics and data visualization
- π₯ Unified Inbox System
- Reviews: Manage client testimonials and feedback
- Applicants: Streamlined recruitment pipeline
- Collaborations: Partnership request management
- πΌ Project Management - Full CRUD capabilities for Portfolios
- π Smart Calendar - Integrated scheduling and event tracking
- β Task Manager - Built-in todo and progress tracking
- π₯ Client CRM - Manage client relationships and details
- πΌοΈ Media Library - Centralized digital asset management
-
Multiple Login Methods
- Email/Password with JWT authentication
- Google OAuth 2.0 integration
- GitHub OAuth integration
-
Two-Factor Authentication (2FA)
- Time-based OTP (TOTP) with authenticator apps
- QR code generation for easy setup
- Backup codes for account recovery
- Persistent 2FA status across sessions
-
Advanced Security Features
- Google reCAPTCHA v3 protection
- bcrypt password hashing (10 rounds)
- Rate limiting on authentication endpoints
- Real-time session management with device tracking
- Active sessions monitoring and remote termination
- Session tracking with browser, device, and location info
- XSS protection with xss-clean middleware
- CSRF protection
- Helmet.js security headers
-
Profile Management
- Update name, email, avatar
- Username changes with monthly limit (3 changes/month)
- Monthly username change reset system
- Custom bio and social links
- Profile picture upload
-
Account Settings
- Security settings (2FA toggle, password change)
- API key generation and management
- Appearance customization (theme preferences)
- Notification preferences and email settings
-
Session Management
- View all active sessions with device details
- Browser and operating system information
- IP address and location tracking
- Last activity timestamp
- Remote session termination capability
-
Activity & Analytics
- Comprehensive account activity log
- Real-time statistics dashboard
- Usage insights and metrics
- Login history tracking
Powered by Netdata Integration
-
Live Metrics Dashboard
- Real-time CPU usage with history graphs
- Memory utilization tracking
- Disk I/O statistics
- Network traffic monitoring (in/out)
- System load average
-
Performance Monitoring
- Response time tracking
- Request throughput
- Error rate monitoring
- Database query performance
-
Features:
- β Backend proxy for CORS-free API calls
- β Secure token management on server-side
- β Authentication required for metrics access
- β Graceful error handling with fallback data
- β Production-ready with environment configuration
- AI-Powered WhatsApp Bot - Automated assistance via WhatsApp
- Bot Commands
/menu- Display available commands- Downloader features (video/audio from various platforms)
- Owner commands for bot management
- Group chat and DM support
- Modern Bot UI - Clean, elegant interface with Unicode symbols
- Contact Forms - reCAPTCHA v3 protected contact and consultation forms
- Toast Notifications - Real-time feedback system with color-coded alerts
- Responsive Design - Mobile-first approach, optimized for all screen sizes
- Modal System - Beautiful modals for auth, video player, dashboard, confirmations
- Socket.IO Integration - Real-time features and live updates
- Form Validation - Client-side and server-side validation with Zod
- Error Handling - Comprehensive error boundaries and user-friendly messages
| Technology | Version | Purpose |
|---|---|---|
| React | 19.1.1 | UI library |
| TypeScript | 5.9 | Type-safe JavaScript |
| Vite | 7.1.14 | Fast build tool with HMR |
| Tailwind CSS | 3.3 | Utility-first CSS framework |
| Framer Motion | 12.23 | Animation library |
| React Router DOM | 7.9 | Client-side routing |
| Axios | 1.13 | HTTP client |
| Recharts | 3.4 | Charts and data visualization |
| Lucide React | 0.552 | Modern icon library |
| Technology | Version | Purpose |
|---|---|---|
| Node.js | β₯18.0.0 | JavaScript runtime |
| Express | 4.21 | Web framework |
| Sequelize | 6.37 | ORM for SQL databases |
| MySQL2 / MariaDB | 3.15 | Database drivers |
| Passport.js | 0.7 | Authentication middleware |
| JWT | 9.0 | Token-based authentication |
| bcryptjs | 2.4 | Password hashing |
| Helmet | 8.0 | Security middleware |
| Express Rate Limit | 7.4 | Rate limiting |
| Winston | 3.17 | Logging |
| express-validator | 7.0 | Request validation |
| Axios | 1.7 | HTTP client (Netdata proxy) |
- Docker - Containerization with multi-stage builds
- Nginx - Production web server and reverse proxy
- Docker Compose - Multi-container orchestration
- Netdata - Real-time system monitoring
Ensure you have the following installed:
Node.js >= 18.x # Check: node --version
npm >= 9.x # Check: npm --version
MySQL/MariaDB # For backend database
Docker (optional) # For containerized deployment# 1. Clone the repository
git clone https://github.com/MuhammadIsakiPrananda/neverland-studio-portfolio.git
cd neverland-studio-portfolio
# 2. Install frontend dependencies
npm install
# 3. Install backend dependencies
cd neverland-backend
npm install
cd ..
# 4. Configure environment variables (see below)
cp .env.example .env
cp neverland-backend/.env.example neverland-backend/.env
# Edit both .env files with your configuration
# 5. Setup database (from neverland-backend directory)
cd neverland-backend
npm run db:migrate
npm run db:seed # Optional: seed with sample data
cd ..
# 6. Start development servers
# Terminal 1 - Frontend
npm run dev
# Terminal 2 - Backend
cd neverland-backend
npm run devYour application will be running at:
- Frontend: http://localhost:5173
- Backend API: http://localhost:5000
| Command | Description |
|---|---|
npm run dev |
Start dev server with HMR |
npm run build |
Build for production |
npm run preview |
Preview production build |
npm run lint |
Run ESLint |
npm run test |
Run tests with Vitest |
| Command | Description |
|---|---|
npm run dev |
Start dev server with nodemon |
npm run start |
Start production server |
npm run db:migrate |
Run database migrations |
npm run db:migrate:undo |
Rollback last migration |
npm run db:seed |
Seed database |
npm run db:reset |
Reset database completely |
npm run lint |
Run ESLint |
- Frontend Development - Changes are reflected instantly with Hot Module Replacement (HMR)
- Backend Development - Server auto-restarts on file changes with nodemon
- Database Changes - Create migrations for schema changes
- Type Safety - TypeScript will catch errors during development
# Build and start all services
docker-compose up -d --build
# View logs
docker-compose logs -f
# Stop services
docker-compose downThe docker-compose.yml includes:
- Frontend - React app served by Nginx (port 80)
- Backend - Express API server (port 5000)
- Database - MySQL/MariaDB database (port 3306)
# Build frontend
docker build -t neverland-frontend .
# Build backend
docker build -t neverland-backend ./neverland-backend
# Run frontend
docker run -d -p 80:80 neverland-frontend
# Run backend
docker run -d -p 5000:5000 neverland-backendFor production deployment:
- Set environment variables - Update
.envfiles with production values - Configure CORS - Update allowed origins in backend
- Setup SSL - Configure HTTPS with certificates
- Update OAuth callbacks - Set production callback URLs
- Database - Configure production database connection
- Build & Deploy - Run
docker-compose up -d --build
# API Configuration
VITE_API_BASE_URL=https://api.neverlandstudio.my.id/api
VITE_BACKEND_URL=https://api.neverlandstudio.my.id
# Google reCAPTCHA v3
VITE_RECAPTCHA_SITE_KEY=your_recaptcha_site_key
# OAuth Configuration
VITE_GOOGLE_CLIENT_ID=your_google_client_id
VITE_GITHUB_CLIENT_ID=your_github_client_id
# App Configuration
VITE_APP_NAME=Neverland Studio
VITE_APP_URL=https://neverlandstudio.my.id
VITE_ENABLE_CHATBOT=true# Server
NODE_ENV=production
PORT=5000
HOST=0.0.0.0
# URLs
BACKEND_URL=https://api.neverlandstudio.my.id
FRONTEND_URL=https://neverlandstudio.my.id
# Database
DB_HOST=mariadb_neverland
DB_PORT=3306
DB_NAME=neverlandstudio
DB_USER=root
DB_PASSWORD=your_secure_password
# JWT
JWT_SECRET=your_jwt_secret_here
JWT_EXPIRES_IN=7d
REFRESH_TOKEN_SECRET=your_refresh_token_secret
REFRESH_TOKEN_EXPIRES_IN=30d
# OAuth
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_CALLBACK_URL=https://api.neverlandstudio.my.id/api/auth/google/callback
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
GITHUB_CALLBACK_URL=https://api.neverlandstudio.my.id/api/auth/github/callback
# reCAPTCHA
RECAPTCHA_SECRET_KEY=your_recaptcha_secret_key
# Netdata Monitoring
NETDATA_URL=https://netdata.neverlandstudio.my.id
NETDATA_API_TOKEN=your_netdata_api_token
# CORS
ALLOWED_ORIGINS=https://neverlandstudio.my.id,https://www.neverlandstudio.my.id
# Frontend URL
FRONTEND_URL=https://neverlandstudio.my.id
# Session
SESSION_SECRET=your_session_secret- Google reCAPTCHA: console.cloud.google.com/recaptcha
- Google OAuth: console.cloud.google.com/apis/credentials
- GitHub OAuth: github.com/settings/developers
Contributions are welcome! Here's how you can help:
# 1. Fork the repository on GitHub
# 2. Clone your fork
git clone https://github.com/YOUR_USERNAME/neverland-studio-portfolio.git
# 3. Create a feature branch
git checkout -b feature/amazing-feature
# 4. Make your changes and commit
git commit -m "feat: add amazing feature"
# 5. Push to your fork
git push origin feature/amazing-feature
# 6. Open a Pull RequestFollow Conventional Commits:
feat: New feature
fix: Bug fix
docs: Documentation changes
style: Code style changes (formatting)
refactor: Code refactoring
test: Add or update tests
chore: Build process or dependency updates
Open an issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Screenshots (if applicable)
- Environment details (OS, browser, Node version)
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2024 Muhammad Isaki Prananda
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...
Muhammad Isaki Prananda
Project Repository
github.com/MuhammadIsakiPrananda/neverland-studio-portfolio
Made with β€οΈ by Muhammad Isaki Prananda
