A modern JavaFX application for seamless travel and tourism management
Features β’ Installation β’ Usage β’ Contributing
- Browse and manage accommodations with detailed information
- Image galleries for visual representation
- Advanced filtering and search capabilities
- Discover historical monuments and landmarks
- Detailed descriptions with rich media content
- Interactive map integration
- Browse certified tour guides
- View ratings and reviews
- Secure booking system with payment integration
- Leave detailed reviews for guides and accommodations
- Rating system for quality assurance
- Community-driven recommendations
- Secure authentication with email verification
- User profiles with customization options
- Role-based access control (Admin/Client)
- Real-time statistics and reports
- Booking analytics with visual charts
- Revenue tracking and insights
- Clean, responsive design
- Multiple theme support
- Intuitive navigation
TourJoyFX/
βββ src/main/java/
β βββ Controller/ # UI Controllers
β βββ Entities/ # Data Models
β βββ Services/ # Business Logic
β βββ Filter/ # Search & Filter Logic
β βββ utils/ # Utility Classes
βββ src/main/resources/
β βββ *.fxml # UI Layouts
β βββ *.css # Styling
β βββ images/ # Assets
βββ pom.xml # Maven Configuration
- Java 17+
- Maven 3.6+
- JavaFX SDK
-
Clone the repository
git clone https://github.com/mahdi-y/TourJoyFx.git cd TourJoyFx -
Build the project
mvn clean install
-
Run the application
mvn javafx:run
Using IDE:
- Import as Maven project
- Run
HelloApplication.java
JAR Execution:
mvn clean package
java -jar target/tourjoyfx-1.0.jar| Technology | Purpose | Version |
|---|---|---|
| Java | Core Language | 17+ |
| JavaFX | UI Framework | Latest |
| Maven | Build Tool | 3.6+ |
| FXML | UI Layout | - |
| CSS3 | Styling | - |
| MySQL | Database | 8.0+ |
| Apache PDFBox | PDF Generation | Latest |
| ZXing | QR Code Generation | Latest |
AccomodationController- Accommodation managementGuidesFront- Guide booking interfacePaymentController- Payment processingSubscriptionController- Subscription management
- User authentication and session management
- Booking and reservation services
- Payment processing integration
- Email notification system
- Modern CSS styling with multiple themes
- Responsive design patterns
- Custom components and controls
- Smooth animations and transitions
The application supports multiple CSS themes located in:
styles.css- Main themebackoffice.css- Admin interfacestyling.css- Alternative styling
- Create a new CSS file in
src/main/resources/ - Define your custom styles
- Load the theme in your controller:
scene.getStylesheets().add("your-theme.css");
- Install MySQL 8.0+
- Create database:
tourjoy_db - Update connection settings in your configuration files
Configure SMTP settings for email notifications in the application properties.
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m 'Add amazing feature' - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow Java naming conventions
- Add JavaDoc comments for public methods
- Ensure CSS follows BEM methodology
- Test your changes thoroughly
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@tourjoy.com
- JavaFX community for excellent documentation
- Open source contributors
- Beta testers and feedback providers