TrackMe: Your Fitness Journey Simplified!
TrackMe: Your Fitness Journey Simplified! Appwrite Hashnode Hackathon
Team Details
Aryan Mankame - Aryan Mankame
Raj Dama
Description of Project
In a world where health coaches, fancy diets, and expensive guidance often fall short, the key to achieving fitness goals lies in consistency and simplicity. The success stories of the 20% who have achieved their desired results confirm this fact. Introducing our groundbreaking fitness tracker application, a comprehensive platform that brings together all the essential tools for your fitness journey.
Gone are the days of scattered information and costly options. This innovative application provides users with a single, convenient hub to embark on their transformational health journey. By leveraging their drive and determination, individuals can unlock their true potential.
Meal Planner:
The meal planner feature allows users to easily track and log their daily food intake. Users can input details about each meal, including the meal name, ingredients, portion sizes, and nutritional information. This data is securely stored in the backend database, enabling users to review their eating habits and make informed decisions about their diet.
Exercise Tracker:
The exercise tracker feature enables users to monitor their physical activity throughout the day. Users can log their workouts, exercises, and other physical activities, keeping a record of their progress. This information is stored in the backend, allowing users to track their exercise patterns and stay motivated.
Home App and Goal Tracking:
The home app serves as a central hub where users can access their tracked meals and workouts from previous days. This feature provides valuable insights into their progress and current fitness status. Users can easily monitor their achievements and identify areas where they need to make adjustments to reach their goals. Additionally, the application sends timely reminders in the morning, afternoon, evening, and night to help users stay consistent with their meal schedule and exercise routine.
AI Health Assistant:
Our application features an AI-powered health assistant that serves as a reliable source of information and guidance. Users can ask questions related to their fitness goals, seek advice on health-related matters, and receive personalized recommendations. This intelligent assistant provides valuable insights and support, helping users make informed decisions about their fitness journey.
With these four powerful features, our fitness tracker application empowers users to take control of their health and achieve their desired fitness goals. It combines convenience, data-driven insights, and personalized assistance to create a comprehensive tool for optimizing health and well-being.
Tech Stack
React.js - Used to develop the front-end of our application.
API's used :
Express.js - Used
Appwrite cloud
Appwrite auth - used for user authentication
Appwrite database - used for storing user-related data of various features that we implemented
Render - Deploy our backend
Netlify - Deploy our frontend
Challenges We Faced
When using Appwrite for user authentication and database management, we encountered several challenges. One of the major challenges was the absence of a nested document option in the database structure.
Nested documents are a way to organize data within a document by embedding one document within another. This allows for a more complex and hierarchical data structure. However, Appwrite did not provide a built-in option to create nested documents.
To overcome this challenge, we devised a solution by storing the nested data as a string. Instead of directly storing the nested document, we would convert it into a string format using a process known as "stringifying." This involved converting the nested document into a JSON string and then storing it as a regular string within the parent document.
By using this approach, we were able to maintain the hierarchical structure of our data and retrieve it when needed. However, it also meant that we had to manually parse and manipulate the nested data whenever we wanted to access or modify it. This added an extra layer of complexity to our code and increased the amount of data processing required.
Despite the challenges posed by the lack of a nested document option in Appwrite, the solution of stringifying the data allowed us to work around this limitation and continue building our application. However, it is worth noting that this workaround may not be as efficient or straightforward as having a native nested document option. Therefore, it is important to carefully consider the requirements and limitations of the chosen database solution when working with complex data structures.
Public Code Repo
FrontEnd : https://github.com/rajdama/appwrite-hackathon-frontend
Backend : https://github.com/rajdama/appwrite-hackathon-backend
Demo Link
Project Link :https://track-me-frontend.onrender.com/