TabemonPal adalah aplikasi makan sehat dengan gamifikasi yang dirancang untuk mendorong pengguna mengadopsi kebiasaan makan yang lebih sehat melalui UI yang menarik dan interaktif. Dengan menggabungkan fitur sosial, misi, dan elemen gamifikasi, TabemonPal membuat makan sehat menjadi menyenangkan dan mudah diakses.
TabemonPal is a gamified healthy eating application designed to encourage users to adopt healthier eating habits through an engaging and interactive user interface. By combining social features, missions, and gamification elements, TabemonPal makes healthy eating fun and accessible.
- User Authentication System: Secure login and registration with account management
- Community Sharing: Share food recipes and healthy eating tips with other users
- Social Interaction: Like, comment, and engage with posts from the community
- Profile Management: Personalized user profiles with account settings
- Achievement System: Track accomplishments and progress in healthy eating goals
- Mission System: Complete challenges to earn rewards and recognition
- Consultation: Get advice and guidance on healthy eating habits with AI-powered ChatGPT integration
- Article: Access a comprehensive knowledge base on nutrition and healthy foods
- Embedded User API Server: Handles user data and authentication requests
Ensure you have the following installed on your system:
- Java Development Kit (JDK) 17 or higher
- Maven for dependency management
Follow these steps to set up the project locally:
-
Clone the repository:
git clone https://github.com/ZanDev32/TabemonPal.git && cd TabemonPal
-
Build the project with Maven:
mvn -B clean install
-
Run the application:
mvn javafx:run
TabemonPal stores all user data (XML files, uploaded images, and application settings) in a directory called .tabemonpal located in your user's home directory:
- Windows:
C:\Users\[username]\.tabemonpal\ - macOS:
/Users/[username]/.tabemonpal/ - Linux:
/home/[username]/.tabemonpal/
This ensures that your data persists across application updates and remains separate from the installation directory.
TabemonPal/
└── src/
├── main/
│ ├── java/
│ │ └── com/
│ │ └── starlight/
│ │ ├── App.java # Main application entry point
│ │ ├── api/
│ │ ├── controller/
│ │ ├── data/
│ │ ├── model/
│ │ ├── repository/
│ │ └── util/
│ └── resources/
│ └── com/
│ └── starlight/
│ ├── fonts/
│ ├── images/
│ └── view/ # FXML layout files
└── test/
└── java/
└── com/
└── starlight/
├── api/
├── controller/
├── model/
└── util/
- JavaFX: UI framework for desktop application development
- MaterialFX: Modern UI components and styling
- XStream: XML serialization/deserialization for data persistence
- ChatGPT Java API: Integration with OpenAI's ChatGPT for consultation features
- HttpServer: Java's built-in HTTP server for API endpoints
- CSS: Custom styling for the application interface
An embedded HTTP server that handles user authentication, registration, and data management through RESTful endpoints.
XML-based repositories for storing and retrieving user accounts and community posts with support for CRUD operations.
All user-generated data (XML files and uploaded images) is stored in a directory named .tabemonpal inside the current user's home folder. This keeps application data separate from the installation path and ensures it persists across updates.
The application leverages OpenAI's ChatGPT to provide intelligent consultation and nutritional advice to users.
The application follows the Model-View-Controller pattern with clear separation between data models, JavaFX views, and controller logic.
The project uses Maven for dependency management. To build from source:
mvn clean installmvn test- MaterialFX: https://github.com/palexdev/MaterialFX
- XStream: https://x-stream.github.io/
- MaterialFX library by Alessandro Parisi for the modern UI components
- PlexPt for the ChatGPT Java API integration
- Praventa-desktop by rizalkalam for some code inpiration
- XStream library for simplified XML serialization
Copyright © 2025 Starlight Inc. developers. All rights reserved.