This is a personal project which aims to make tracking calories/weights more convenient using google calendar and multiple input methods via web/google forms.
- The project takes input via web/google forms thus enabling users to input data via pc/smartphone as per their convenience. Use this form
- It will need access to your google calendar. As the project is not a commercial one, it cannot be verified by google and hence will probably show as unsafe. You can verify it by checking the developer mail which would be mine.
- It calculates tdee and sets reminder via google calendar event, thus eliminating the need of browsing to a certain app to see your daily calorie needs. This particularly can come in handy if someone uses a smart home device which can give them their daily tdee goal as they wake up
- The generic formula for calculating tdee is used which updated itself as more data is input. It is highly recommeded to input atleast 2 weeks of data to get consistent results.
You'll need Python 3.7 or above to run the code. As of now it's a terminal based program, however developing it into a web app using flask is something I'm planning to do in the future. I developed this program in a conda environment and it's something I recommend as there are some project specific libraries not employed often in general use case. List of libraries:
- google.auth, google.oauth2, google_auth_oauthlib, googleapiclient
- pymysql
- bcrypt
- getpass
- gspread, gspread_dataframe
- oauth2client
- traceback
-
You'll need to create a project in the Google Cloud Console and enable the Google Calendar API for that project. You can follow the steps outlined in this guide to do this.
-
Once you have enabled the API, you'll need to create OAuth 2.0 credentials for your project. You can follow the steps outlined in this guide to create the credentials.
-
You will also need credential file for google sheets. Follow this link to create one.
I, Arohan Ajit am the sole contributor. You can contact me on [email protected] for anything related. Alternatively you can post some on github which I check rather sporadically.
The project is covered under MIT Open Source
There are a couple of things I plan to do
- Better comments
- The project uses a free online database, so you probably won't be able to use it for extensive tests. This also introduces a possibility to that it might be down at sometime in future (whenever you're seeing this). Please create your own instance of db and replace the credentials.
- Clean up the code. In case it is not immediately evident, I am an amateur programmer and having lot of extra code commented out which were used for test/previous versions. I am planning to clean up the code.
- Develop into a flask web app. As of now the web input is terminal based.
- Something else that comes in mind in future, time permiting.