- Project Overview
- Features
- Technology Stack
- File Structure
- Installation
- Configuration
- Usage
- Dummy Data
- API Endpoints
- Contributing
- License
- Contact
TRAGOS is a premium travel & group online system designed to help travelers connect, create, and manage groups, chat in real time, and discover new adventures together.
- User Registration & Authentication: Secure sign-up, login, logout, and session management.
- Password Management: Change password after login and reset via email.
- Profile Management: View/update profile information and upload an avatar.
- Group Search & Listing: Search groups by name, category, or location; view summaries with member count.
- Group Creation & Privacy: Create public/private groups; handle join logic automatically.
- Join Request Management: Approve, reject, or block requests for private groups.
- Membership Management: View member lists and leave groups.
- Real-Time Group Chat: Post messages with timestamps; auto-refresh for new chats.
- Notifications: Alerts for join approvals and new messages.
- Security & Validation: Input sanitization, access control, and prevention of duplicate usernames/emails.
| Layer | Technology |
|---|---|
| Backend | PHP |
| Database | MySQL |
| Frontend | HTML5, CSS3, JavaScript |
| AJAX & APIs | Vanilla JS (Fetch API) |
| Server | XAMPP (Apache & MySQL) |
tragos/
├── api/ # AJAX endpoints
│ ├── clear-notifications.php
│ ├── delete-group.php
│ ├── delete-notification.php
│ ├── export-data.php
│ ├── get-notification.php
│ ├── leave-group.php
│ ├── mark-notification-read.php
├── assets/ # Static assets
│ ├── css/style.css # Global styles
│ ├── js/main.js # Frontend interactions
│ └── images/ # PNG images/logos
├── config/ # Configuration files
│ └── database.php
├── includes/ # Shared layouts & helpers
│ ├── header.php
│ ├── footer.php
│ └── functions.php
├── database/ # SQL schema & seed data
│ └── schema.sql
├── index.php # Home page
├── about.php # About page
├── contact.php # Contact form
├── register.php # User registration
├── login.php # User login
├── logout.php # Logout handler
├── forget-password.php # Password reset
├── profile.php # Profile management
├── settings.php # Account settings
├── groups.php # List/search groups
├── create-group.php # New group form
├── edit-group.php # Edit group details
├── group-detail.php # View group info
├── group-chat.php # Chat interface
├── manage-requests.php # Approve/reject join requests
├── my-groups.php # User’s groups overview
├── search.php # Advanced search
├── notifications.php # View notifications
├── privacy.php # Privacy policy
├── terms.php # Terms of service
└── help.php # Help & FAQ
-
Clone the repository:
git clone https://github.com/Kaleemullah-Younas/tragos.git cd tragos -
Set up the database:
- Import
database/schema.sqlinto MySQL via phpMyAdmin or CLI.
- Import
-
Configure database connection:
- Edit
config/database.phpwith your DB credentials.
- Edit
-
Configure file permissions:
- Ensure
assets/images/avatars/is writable for uploads.
- Ensure
-
Start XAMPP and place the
tragos/folder inhtdocs/. -
Access:
- Open
http://localhost/tragos/in your browser.
- Open
Edit config/database.php:
<?php
$host = '127.0.0.1';
$db = 'tragos_db';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';
// ...- Register a new account.
- Login with username/email and password.
- Search/Create travel groups.
- Join public groups instantly or request access to private ones.
- Chat with members in real time.
- Manage profile and notifications.
-
Users:
john_doe,jane_smith,alice_wong(password:password123). -
Groups:
- Backpacking Adventures (public)
- Luxury Escapes (private)
| Endpoint | Method | Description |
|---|---|---|
/api/clear-notifications.php |
POST | Clear all user notifications |
/api/get-notification.php |
GET | Fetch unread notifications |
/api/mark-notification-read.php |
POST | Mark a notification as read |
/api/delete-notification.php |
POST | Delete a specific notification |
/api/export-data.php |
GET | Export user/group data as CSV |
/api/leave-group.php |
POST | Leave a group |
/api/delete-group.php |
POST | Delete a group (owner only) |
Contributions, issues, and feature requests are welcome! Please follow our contribution guidelines.
This project is licensed under the MIT License. See LICENSE for details.
Built with ❤ using PHP, MySQL & Vanilla JavaScript