In a significant update to the FDDB Exporter (see the old post here), I’ve redesigned the tool, improving both its functionality and code quality. The new version introduces several key features, making it more powerful and user-friendly.
Key New Features:
- MongoDB Integration: The application now uses MongoDB for persistent data storage, improving scalability and long-term management of your logged entries.
- Complete Nutritional Diary Logging: Instead of just retrieving daily calorie totals and macronutrient summaries, the tool now pulls all logged entries from the FDDB nutritional diary. This means that you can store your data forever for yourself without relying on FDDB (which usually stores for 90 days to max 2 years).
- REST API with Advanced Search: The newly integrated REST API allows exporting data over custom time ranges, searching for specific days, or even finding entries by keyword. This makes it easy to locate specific entries, such as when you consumed particular foods or meals.
Improved Code Quality and User Login
In addition to the feature improvements, I’ve refactored the code to enhance its overall quality, making the application more reliable and maintainable. Another major convenience is the new login mechanism—users no longer need to retrieve an FDDB cookie manually. You can now log in directly using your username and password, streamlining the process significantly.
Multi-Arch Docker Image & Helm Chart
The FDDB Exporter is now even easier to deploy. The Docker image is multi-arch, including ARM support, so it can run across various environments. Additionally, there’s an official Helm chart published on Artifact Hub, simplifying Kubernetes deployments.
Roadmap
The project’s roadmap includes several future improvements:
- product search API: limit search by date or weekday instead of searching and returning every day
- Alerting feature to notify when the Scheduler run failed
- accompanying Flutter app as a frontend
- Optional InfluxDB persistence, allowing direct integration with Grafana.
Upcoming InfluxDB Integration
The next release will introduce an InfluxDB option for persistence. MongoDB, while excellent for storage, doesn’t integrate with Grafana out-of-the-box, meaning no simple way to visualize data in graphs. The InfluxDB connection will restore that functionality, allowing users to display graphs easily, just like in the earlier versions.
For more detailed instructions, visit the updated README in the GitHub repository.