A web application for fitness enthusiasts to track their goals, monitor progress, and engage with a community.
- π Overview
- π¦ Features
- π Structure
- π» Installation
- ποΈ Usage
- π Hosting
- π License
- π Authors
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.
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. |
βββ 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
- Node.js v18+
- npm 8+
- PostgreSQL 14+
- Clone the repository:
git clone https://github.com/coslynx/Fitness-Tracker-MVP-Web.git cd Fitness-Tracker-MVP-Web
- Install dependencies:
npm install
- Set up the database:
- Create a PostgreSQL database with the name
fitness_tracker
. - Configure the database credentials in the
.env.local
file.
- Create a PostgreSQL database with the name
- Configure environment variables:
cp .env.example .env.local
- Replace the placeholders with your actual API URL, database connection string, and Google Client ID/Secret.
- Run database migrations:
npx prisma db push
- This will create the necessary tables in your PostgreSQL database.
- Start the development server:
npm run dev
- The application will be accessible at http://localhost:3000.
- Open a browser and navigate to the specified URL.
.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.
- Configure Environment Variables: Set up the necessary environment variables on your chosen platform.
- Build the Application: Run
npm run build
to create the production build. - Deploy: Deploy the build artifacts to your chosen platform, such as Vercel, Netlify, or Heroku.
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.
This Minimum Viable Product (MVP) is licensed under the GNU AGPLv3 license.
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
For any questions or concerns regarding this AI-generated MVP, please contact CosLynx at:
- Website: CosLynx.com
- Twitter: @CosLynxAI
Create Your Custom MVP in Minutes With CosLynxAI!