This project is a real-time chat application built with PHP for the backend, MySQL for the database, and pure HTML, CSS, and JavaScript for the frontend. It supports private messaging, group chats, email notifications, and chat history export. Users can create groups, chat within them, edit profiles, and view profile statistics.
- Real-Time Messaging: Instant messaging between users with real-time updates.
- Private and Group Chats: Users can chat one-on-one or create groups for collective conversations.
- User Profile Management: Users can edit their profiles and view statistics such as last active time and message count.
- Email Notifications: Receive email notifications for important events like new messages or group invites.
- Chat History Export: Users can export their chat history for backup or offline viewing.
- PHP
- Composer
- MySQL
- A web server (e.g., Apache or Nginx)
-
Clone the repository:
git clone https://github.com/yordil/chatApp.git cd chatApp -
Install dependencies:
composer install
-
Create and configure the database:
- Create a MySQL database named
chatapp. - Import the database schema located in
Backend/database/schema.sql. - Update the database configuration in
Backend/config/database.phpwith your MySQL credentials.
- Create a MySQL database named
-
Set up your web server:
- Configure your web server to serve the
BackendandFrontenddirectories. - Ensure the PHP server is running and properly configured.
- Configure your web server to serve the
-
User Endpoints:
- Create user
- Edit profile
- Get profile statistics
-
Message Endpoints:
- Send message
- Get messages
- Export chat history
-
Group Endpoints:
- Create group
- Join group
- Chat in group
-
Starting the Server: Ensure your PHP server is running and your web server is configured correctly to serve the application.
-
Accessing the Application: Open your web browser and navigate to the application URL.
- Fork the repository
- Create a new branch (
git checkout -b feature-branch) - Commit your changes (
git commit -m 'Add new feature') - Push to the branch (
git push origin feature-branch) - Create a new Pull Request