FDDB Exporter is a tool designed to extract nutritional data from FDDB.info and store it in a MongoDB/InfluxDB database. This application is especially useful for individuals who want to keep their FDDB diaries for themselves. FDDB only stores entries for up to 2 years for premium members, and even less for free users. Additionally, it is very handy if you want to query your data to see on which days you have entered specific products.
- Exports daily nutritional totals: calories, fat, carbohydrates, sugar, protein, and fiber
- Stores detailed information on consumed products, including name, amount, nutritional values, and link to the product page
- Supports scheduled daily exports and manual exports for specific date ranges
- Provides a RESTful API for data retrieval and export operations
- Docker or Java 21+ runtime environment
- A valid FDDB.info account
- MongoDB instance (can be run using the provided Docker Compose file)
- InfluxDB instance (optional, but recommended for storing daily totals)
- Spring Boot
- Java 21
- MongoDB
- Docker (optional)
This application does not collect any personal data. All data is stored locally on your device. Your FDDB credentials are only used to log in to the FDDB website and fetch the data. To determine how this tool is used (and how important it is to maintain it), the application sends some anonymous data to my server. The mail address is hashed and cannot be used to identify you. Along with the hash of the mail address, the following data is sent: amount of documents in the database, what persistence layer is used, the version of the application and the environment (container, Kubernetes or plain java). Feel free to audit the code yourself here. If you still have any concerns, feel free to contact me or open an issue.
I plan on implementing the following features in the future:
- Helm Chart for deployment
- product search API: to get only relevant data instead of the entire day
- product search API: limit search by date or weekday instead of searching and returning every day
- correlation API: find products correlating with given dates
- new stats endpoint: display some stats of your data
- ARM container release
- Alerting feature to notify when the Scheduler run failed
- accompanying Flutter app as a frontend
- InfluxDB as additional persistence layer
If you have another feature in mind please open up an issue or contact me.
The service typically uses around 300 MB of RAM with minimal CPU usage when idle.
Contributions are welcome! Please feel free to submit a Pull Request or open an issue.