KAUSHIK K

Note: This blog is a work in progress. The project is still being built, and some sections are yet to be completed.

Building Fitness Tracker App

Fitness and technology have always fascinated me, so I decided to combine the two by building a Fitness Tracker app. This project is more than just a tool; it's an opportunity for me to learn and grow as a developer while creating something meaningful.

Dec 10, 2024

Building Fitness Tracker App

*NOTE: This image might be generated using ChatGPT.*

What's in the App So Far?

Tech Stack and Why I Chose It

Backend
Authentication Microservice: Rust with Axum

The backbone of the app is its authentication microservice, which I've built using Rust. Rust is known for its speed and safety, and with the Axum framework, I was able to create a solid structure for handling all user-related features.

Key components of the backend:

  • Axum Framework: Axum makes it easy to build reliable web services with less boilerplate code. Since it's built on Tokio, it's highly efficient at managing real-time data and handling multiple user requests simultaneously.
  • GraphQL: I used GraphQL to create a flexible way for the frontend and backend to exchange data. This reduces the need for multiple endpoints and speeds up interactions, especially for complex queries.
  • Diesel ORM: Diesel simplifies working with the database. It's type-safe and helps prevent errors while making tasks like managing schemas, building queries, and fetching data straightforward.

Here's what the backend currently offers:

  • Login and Signup: Smooth and secure authentication to get users started.
  • Forgot Password: A user-friendly way to recover accounts if you forget your password.
Frontend: React Native

For the app's user interface, I chose React Native. Why? Because it allows me to create a single app that works seamlessly on both Android and iOS. The result is a simple yet functional design that focuses on ease of use, whether you're a fitness newbie or a pro.

With React Native, I'm able to build features quickly and ensure the app looks great on any screen size.

Features of App

Current Features
  • Authentication: Secure login, signup, and password recovery.
Upcoming Features

The app is just getting started, and there's so much more planned! Here's a sneak peek at what's coming:

  • Progress Tracking: Interactive graphs and charts to help users visualize their fitness journey-from workouts completed to calories burned.
  • A Smarter Pedometer: Beyond step counting, this feature will estimate calories burned throughout the day, giving users a deeper insight into their activity levels.
  • AI-Powered Workouts: A personal trainer in your pocket! The AI will generate custom workout plans based on individual goals, preferences, and progress-tailored for beginners and advanced athletes alike.

Challenges Faced and Lessons Learned

Rust and Axum for Backend

Learning Rust was a challenge but a rewarding one. The language's focus on safety and performance helped me create a highly reliable backend, though it required attention to detail, especially with memory management.

React Native for Frontend

Ensuring a consistent design across Android and iOS devices took effort. React Native's flexibility was a big help, but testing on different screen sizes was essential to maintain a seamless user experience.

GraphQL API Implementation

Implementing GraphQL was both exciting and tricky. It provided the flexibility needed for dynamic data handling but required a learning curve to design efficient queries and resolvers.

Deployment

The app is currently in development, but deployment will likely involve platforms like AWS or DigitalOcean for their scalability and ease of use.

Key Takeaways

  • Rust and Axum: A powerful combo for building fast, secure, and reliable backends.
  • React Native: Ideal for creating cross-platform apps with a beautiful and functional design.
  • GraphQL: A great choice for apps that require efficient, dynamic data communication.
  • Continuous Learning: Each feature added to the app teaches me something new about technology, design, and user experience.

Why I'm Building This

This project is special to me because it combines two things I'm passionate about: fitness and technology. It's also a great way to learn and explore new tools and frameworks. Every feature I add teaches me something new, from backend security to frontend design and beyond.

It's not just about building an app-it's about growing as a developer.

GitHub Repository

You can find the code for this project on my GitHub:

Follow Along

I'm sharing my progress as I go. If you're curious, follow me on linkedin: www.linkedin.com/in/kaushik13k

Stay tuned for more updates, and let me know what you think about the app so far. 😊

Made with love by Kaushik