WartaWA is a powerful WhatsApp messaging platform that integrates a Node.js/Express backend with a React.js frontend. The application allows users to send and receive WhatsApp messages through the WhatsApp Web service, providing an easy-to-use interface for managing WhatsApp communications. "Warta" means "news" or "message" in Indonesian, making WartaWA the perfect name for your WhatsApp messaging solution.
- User Authentication: Secure login and registration system
- WhatsApp Integration: Send and receive messages through WhatsApp Web
- Dashboard: Monitor WhatsApp connection status and activities
- Message Management: View message history and send new messages
- Contact Management: Add, edit, and delete contacts
- Settings: Configure application preferences and WhatsApp connection
- Profile Management: Update user profile and change password
- Responsive Design: Works on desktop and mobile devices
- Dark/Light Theme: Toggle between dark and light themes
- PWA Support: Progressive Web App capabilities for offline use
- Node.js - JavaScript runtime environment
- Express.js - Web application framework
- whatsapp-web.js - WhatsApp Web API
- MySQL - Relational database
- JWT - JSON Web Tokens for authentication
- React.js - JavaScript library for building user interfaces
- React Router - Routing for React applications
- Tailwind CSS - Utility-first CSS framework
- Axios - Promise-based HTTP client
- Context API - State management
- Node.js (v14 or higher)
- npm or yarn
- MySQL database
-
Download the repository or clone it:
git clone https://github.com/tupski/WartaWA-Bot.git cd WartaWA-Bot -
Run the installer by double-clicking
Install-WartaWA.bat -
Choose your preferred installation method:
- Option 1: Command-line installer (PowerShell)
- Option 2: Graphical installer (Web browser)
-
Follow the prompts to enter your MySQL database credentials and other configuration options
-
After installation completes, use the generated start scripts:
start-all.bat- Starts both backend and frontend serversstart-backend.bat- Starts only the backend serverstart-frontend.bat- Starts only the frontend server
-
Clone the repository:
git clone https://github.com/tupski/WartaWA-Bot.git cd WartaWA-Bot -
Run the installer script:
chmod +x install.sh ./install.sh
-
Follow the prompts to enter your MySQL database credentials and other configuration options
-
After installation completes, use the generated start scripts:
# Start both backend and frontend ./start-all.sh # Or start them separately ./start-backend.sh ./start-frontend.sh
git clone https://github.com/tupski/WartaWA-Bot.git
cd WartaWA-Bot# Navigate to backend directory
cd backend
# Install dependencies
npm install
# Create .env file from example
cp .env.example .env
# Edit .env file with your configuration
# Set up database credentials and JWT secret
# Create database tables
mysql -u your_username -p your_database < src/db/schema.sql
# Start the backend server
npm start# Navigate to frontend directory
cd ../frontend
# Install dependencies
npm install
# Start the frontend development server
npm start- Open your browser and navigate to
http://localhost:3000 - Register a new account or login with the default admin credentials:
- Email: admin@example.com
- Password: admin123
- Navigate to the Dashboard and click "Initialize WhatsApp"
- Scan the QR code with your WhatsApp mobile app:
- Open WhatsApp on your phone
- Tap Menu or Settings and select WhatsApp Web
- Point your phone to the QR code on the screen
- Once connected, you can send and receive messages through the Messages tab
- Send Messages: Send text messages to any WhatsApp number
- Receive Messages: View incoming messages in real-time
- Message History: View history of sent and received messages
- Contact Management: Manage your WhatsApp contacts
- Connection Status: Monitor the status of your WhatsApp connection
- This application stores WhatsApp session data locally
- Never share your session data or .env file
- Use strong passwords for your admin account
- In production, always use HTTPS
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.