Skip to content

Online platform to track fitness goals, progress, and activities... Created at https://coslynx.com

Notifications You must be signed in to change notification settings

coslynx/Fitness-Tracker-MVP-Web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

82 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Fitness Tracker MVP - Web Application

A web application for fitness enthusiasts to track their goals, monitor progress, and engage with a community.

Developed with the software and tools below.

Framework used for the web application Frontend technologies used Backend technologies used Database used for data storage
Last commit date Commit activity Top programming language

πŸ“‘ Table of Contents

  • πŸ“ Overview
  • πŸ“¦ Features
  • πŸ“‚ Structure
  • πŸ’» Installation
  • πŸ—οΈ Usage
  • 🌐 Hosting
  • πŸ“„ License
  • πŸ‘ Authors

πŸ“ Overview

This repository contains a Minimum Viable Product (MVP) called "Fitness Tracker MVP - Web Application". This project is a web application designed to empower fitness enthusiasts by providing a platform to track their goals, monitor progress, and connect with a supportive community. The MVP utilizes a combination of React, TypeScript, Node.js, and PostgreSQL to deliver a functional and user-friendly experience.

πŸ“¦ Features

Feature Description
βš™οΈ Architecture The codebase follows a modular architectural pattern, with separate directories for different functionalities, ensuring easier maintenance and scalability.
πŸ“„ Documentation This README file provides a comprehensive overview of the MVP, its dependencies, and usage instructions.
πŸ”— Dependencies The project relies on various external libraries and packages such as React, Next.js, Zustand, Prisma ORM, and others, which are essential for building the UI, handling data, and integrating external services.
🧩 Modularity The modular structure allows for easier maintenance and reusability of the code, with separate directories and files for different functionalities like authentication, goals, activities, profiles, and progress.
πŸ§ͺ Testing Implement unit tests using frameworks like Jest or React Testing Library to ensure the reliability and robustness of the codebase.
⚑️ Performance The application prioritizes performance by utilizing server-side rendering with Next.js, code splitting, and efficient database interaction. Consider further optimization based on factors like the browser and hardware being used.
πŸ” Security Enhance security by implementing measures such as input validation, data encryption, and secure communication protocols.
πŸ”€ Version Control Utilizes Git for version control with GitHub Actions workflow files for automated build and release processes.
πŸ”Œ Integrations Interacts with browser APIs and external services like Google Fit API or Apple HealthKit for fitness data integration.
πŸ“Ά Scalability The architecture is designed to handle increased user load and data volume. Future scalability enhancements may involve caching strategies and cloud-based solutions.

πŸ“‚ Structure

β”œβ”€β”€ src
β”‚   β”œβ”€β”€ common
β”‚   β”‚   β”œβ”€β”€ constants.ts
β”‚   β”‚   └── utils.ts
β”‚   β”œβ”€β”€ features
β”‚   β”‚   β”œβ”€β”€ auth
β”‚   β”‚   β”‚   β”œβ”€β”€ types.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ services.ts
β”‚   β”‚   β”‚   └── components
β”‚   β”‚   β”‚       β”œβ”€β”€ LoginForm.tsx
β”‚   β”‚   β”‚       └── SignupForm.tsx
β”‚   β”‚   β”œβ”€β”€ goals
β”‚   β”‚   β”‚   β”œβ”€β”€ types.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ services.ts
β”‚   β”‚   β”‚   └── components
β”‚   β”‚   β”‚       β”œβ”€β”€ GoalList.tsx
β”‚   β”‚   β”‚       └── GoalForm.tsx
β”‚   β”‚   β”œβ”€β”€ activities
β”‚   β”‚   β”‚   β”œβ”€β”€ types.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ services.ts
β”‚   β”‚   β”‚   └── components
β”‚   β”‚   β”‚       β”œβ”€β”€ ActivityLog.tsx
β”‚   β”‚   β”‚       └── ActivityForm.tsx
β”‚   β”‚   β”œβ”€β”€ profile
β”‚   β”‚   β”‚   β”œβ”€β”€ types.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ services.ts
β”‚   β”‚   β”‚   └── components
β”‚   β”‚   β”‚       └── UserProfile.tsx
β”‚   β”‚   └── progress
β”‚   β”‚       β”œβ”€β”€ types.ts
β”‚   β”‚       β”œβ”€β”€ services.ts
β”‚   β”‚       └── components
β”‚   β”‚           β”œβ”€β”€ ProgressChart.tsx
β”‚   β”‚           └── ProgressLog.tsx
β”‚   β”œβ”€β”€ pages
β”‚   β”‚   β”œβ”€β”€ _app.tsx
β”‚   β”‚   β”œβ”€β”€ _document.tsx
β”‚   β”‚   β”œβ”€β”€ index.tsx
β”‚   β”‚   β”œβ”€β”€ dashboard.tsx
β”‚   β”‚   β”œβ”€β”€ goals.tsx
β”‚   β”‚   β”œβ”€β”€ activities.tsx
β”‚   β”‚   β”œβ”€β”€ profile.tsx
β”‚   β”‚   β”œβ”€β”€ progress.tsx
β”‚   β”‚   └── api
β”‚   β”‚       β”œβ”€β”€ auth
β”‚   β”‚       β”‚   └── [...nextauth].ts
β”‚   β”‚       β”œβ”€β”€ users
β”‚   β”‚       β”‚   β”œβ”€β”€ [id].ts
β”‚   β”‚       β”‚   └── route.ts
β”‚   β”‚       β”œβ”€β”€ goals
β”‚   β”‚       β”‚   └── route.ts
β”‚   β”‚       β”œβ”€β”€ activities
β”‚   β”‚       β”‚   └── route.ts
β”‚   β”‚       β”œβ”€β”€ progress
β”‚   β”‚       β”‚   └── route.ts
β”‚   β”‚       └── [...]
β”‚   β”œβ”€β”€ components
β”‚   β”‚   β”œβ”€β”€ common
β”‚   β”‚   β”‚   β”œβ”€β”€ Button.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Modal.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Input.tsx
β”‚   β”‚   β”‚   └── Loader.tsx
β”‚   β”‚   └── layout
β”‚   β”‚       β”œβ”€β”€ Header.tsx
β”‚   β”‚       β”œβ”€β”€ Footer.tsx
β”‚   β”‚       └── Sidebar.tsx
β”‚   β”œβ”€β”€ hooks
β”‚   β”‚   β”œβ”€β”€ useAuth.ts
β”‚   β”‚   β”œβ”€β”€ useFetch.ts
β”‚   β”‚   β”œβ”€β”€ useGoals.ts
β”‚   β”‚   β”œβ”€β”€ useActivities.ts
β”‚   β”‚   β”œβ”€β”€ useProfile.ts
β”‚   β”‚   └── useProgress.ts
β”‚   β”œβ”€β”€ services
β”‚   β”‚   β”œβ”€β”€ api.ts
β”‚   β”‚   β”œβ”€β”€ auth.ts
β”‚   β”‚   β”œβ”€β”€ goals.ts
β”‚   β”‚   β”œβ”€β”€ activities.ts
β”‚   β”‚   β”œβ”€β”€ profile.ts
β”‚   β”‚   └── progress.ts
β”‚   β”œβ”€β”€ utils
β”‚   β”‚   β”œβ”€β”€ helpers.ts
β”‚   β”‚   β”œβ”€β”€ validators.ts
β”‚   β”‚   └── formatters.ts
β”‚   β”œβ”€β”€ styles
β”‚   β”‚   β”œβ”€β”€ globals.css
β”‚   β”‚   β”œβ”€β”€ variables.css
β”‚   β”‚   └── theme.ts
β”‚   β”œβ”€β”€ types
β”‚   β”‚   β”œβ”€β”€ user.ts
β”‚   β”‚   β”œβ”€β”€ goal.ts
β”‚   β”‚   β”œβ”€β”€ activity.ts
β”‚   β”‚   β”œβ”€β”€ progress.ts
β”‚   β”‚   └── api.ts
β”‚   └── database
β”‚       β”œβ”€β”€ migrations
β”‚       β”‚   β”œβ”€β”€ _init_.sql
β”‚       β”‚   └── 20240401000000_create_users_table.sql
β”‚       β”œβ”€β”€ seeds
β”‚       β”‚   └── users.seed.js
β”‚       └── models
β”‚           β”œβ”€β”€ User.ts
β”‚           β”œβ”€β”€ Goal.ts
β”‚           β”œβ”€β”€ Activity.ts
β”‚           └── Progress.ts
β”œβ”€β”€ pages
β”‚   β”œβ”€β”€ (auth)
β”‚   β”‚   β”œβ”€β”€ login
β”‚   β”‚   β”‚   └── page.tsx
β”‚   β”‚   └── register
β”‚   β”‚       └── page.tsx
β”‚   └── [...]
β”œβ”€β”€ .env.local
β”œβ”€β”€ next.config.js
β”œβ”€β”€ tailwind.config.js
β”œβ”€β”€ .eslintrc.js
β”œβ”€β”€ .prettierrc
β”œβ”€β”€ tsconfig.json
└── package.json

πŸ’» Installation

πŸ”§ Prerequisites

  • Node.js v18+
  • npm 8+
  • PostgreSQL 14+

πŸš€ Setup Instructions

  1. Clone the repository:
    git clone https://github.com/coslynx/Fitness-Tracker-MVP-Web.git
    cd Fitness-Tracker-MVP-Web
  2. Install dependencies:
    npm install
  3. Set up the database:
    • Create a PostgreSQL database with the name fitness_tracker.
    • Configure the database credentials in the .env.local file.
  4. Configure environment variables:
    cp .env.example .env.local
    • Replace the placeholders with your actual API URL, database connection string, and Google Client ID/Secret.
  5. Run database migrations:
    npx prisma db push
    • This will create the necessary tables in your PostgreSQL database.

πŸ—οΈ Usage

πŸƒβ€β™‚οΈ Running the MVP

  1. Start the development server:
    npm run dev
  2. The application will be accessible at http://localhost:3000.
  3. Open a browser and navigate to the specified URL.

βš™οΈ Configuration

  • .env.local: Contains environment-specific variables like API URLs, database credentials, and authentication secrets.
  • next.config.js: Configures Next.js settings, including build optimization, routing, and server-side rendering.
  • tailwind.config.js: Customizes Tailwind CSS for styling the application.

🌐 Hosting

πŸš€ Deployment Instructions

  1. Configure Environment Variables: Set up the necessary environment variables on your chosen platform.
  2. Build the Application: Run npm run build to create the production build.
  3. Deploy: Deploy the build artifacts to your chosen platform, such as Vercel, Netlify, or Heroku.

πŸ”‘ Environment Variables

  • NEXT_PUBLIC_API_URL: The base URL of your API server.
  • DATABASE_URL: Connection string for your PostgreSQL database.
  • GOOGLE_CLIENT_ID: Your Google Client ID for authentication.
  • GOOGLE_CLIENT_SECRET: Your Google Client Secret for authentication.

πŸ“„ License & Attribution

πŸ“„ License

This Minimum Viable Product (MVP) is licensed under the GNU AGPLv3 license.

πŸ€– AI-Generated MVP

This MVP was entirely generated using artificial intelligence through CosLynx.com.

No human was directly involved in the coding process of the repository: Fitness-Tracker-MVP-Web

πŸ“ž Contact

For any questions or concerns regarding this AI-generated MVP, please contact CosLynx at:

🌐 CosLynx.com

Create Your Custom MVP in Minutes With CosLynxAI!