Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/coslynx/fitness-goals-web-app
Project: Simple fitness tracker with goal setting, progress logging, and basic analytics. Created at https://coslynx.com
https://github.com/coslynx/fitness-goals-web-app
api-integration code-generation developer-tools devops fitness-community fitness-tracker goal-setting machine-learning motivation-app mvp nextjs postgresql progress-tracking react social-fitness software-development supabase tailwindcss typescript workout-logging
Last synced: about 2 months ago
JSON representation
Project: Simple fitness tracker with goal setting, progress logging, and basic analytics. Created at https://coslynx.com
- Host: GitHub
- URL: https://github.com/coslynx/fitness-goals-web-app
- Owner: coslynx
- Created: 2024-09-07T02:02:42.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-09-07T02:07:26.000Z (5 months ago)
- Last Synced: 2024-11-10T04:08:33.281Z (3 months ago)
- Topics: api-integration, code-generation, developer-tools, devops, fitness-community, fitness-tracker, goal-setting, machine-learning, motivation-app, mvp, nextjs, postgresql, progress-tracking, react, social-fitness, software-development, supabase, tailwindcss, typescript, workout-logging
- Language: TypeScript
- Size: 32.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
fitness-goals-web-appA web application that empowers fitness enthusiasts to track their progress, set goals, and connect with others.
Developed with the software and tools below.
## ๐ Table of Contents
- ๐ Overview
- ๐ฆ Features
- ๐ Structure
- ๐ป Installation
- ๐๏ธ Usage
- ๐ Hosting
- ๐ License
- ๐ Authors## ๐ Overview
The repository contains a Minimum Viable Product (MVP) called "fitness-goals-web-app" that provides a comprehensive solution for fitness enthusiasts. This application utilizes a robust technology stack including React, Next.js, TypeScript, Tailwind CSS, Supabase, and custom LLMs like Gemini and OpenAI.## ๐ฆ Features
| | Feature | Description |
|----|--------------------|--------------------------------------------------------------------------------------------------------------------|
| โ๏ธ | **Architecture** | The codebase follows a modular architectural pattern, separating functionalities into distinct directories for easier maintenance and scalability. |
| ๐ | **Documentation** | This README file provides a comprehensive overview of the MVP, including installation instructions, usage guides, and detailed explanations. |
| ๐ | **Dependencies** | The application leverages various external libraries and packages, such as React, Next.js, Zustand, and Tailwind CSS, to provide a seamless user experience. |
| ๐งฉ | **Modularity** | The code is structured with separate components, pages, and utilities, promoting code reusability and simplifying future development. |
| ๐งช | **Testing** | The codebase includes unit tests to ensure the reliability and robustness of the application's core functionalities. |
| โก๏ธ | **Performance** | The application prioritizes performance, utilizing caching strategies and optimized code to deliver a fast and responsive user experience. |
| ๐ | **Security** | Security is a top priority, with measures like input validation, data encryption, and secure authentication implemented to protect user data. |
| ๐ | **Version Control**| Git is used for version control, while GitHub Actions automate build and release processes, ensuring a streamlined development workflow. |
| ๐ | **Integrations** | The application integrates with various external services like Supabase for database management, Google OAuth for authentication, and fitness trackers via APIs. |
| ๐ถ | **Scalability** | The application is designed for scalability, using a serverless backend and cloud-based database to handle increasing user traffic and data storage. |## ๐ Structure
```text
fitness-goals-web-app
โโโ public
โ โโโ favicon.ico
โโโ src
โ โโโ components
โ โ โโโ Button.tsx
โ โ โโโ Header.tsx
โ โ โโโ Layout.tsx
โ โ โโโ GoalInput.tsx
โ โ โโโ ProgressChart.tsx
โ โ โโโ SocialShareButton.tsx
โ โโโ pages
โ โ โโโ api
โ โ โ โโโ auth.ts
โ โ โ โโโ goals.ts
โ โ โ โโโ progress.ts
โ โ โโโ _app.tsx
โ โ โโโ index.tsx
โ โ โโโ dashboard.tsx
โ โ โโโ login.tsx
โ โโโ styles
โ โ โโโ global.css
โ โโโ utils
โ โ โโโ helpers.ts
โ โ โโโ api.ts
โ โ โโโ auth.ts
โ โ โโโ validation.ts
โ โโโ config
โ โ โโโ next-auth.config.ts
โ โโโ middleware
โ โ โโโ authentication.ts
โ โโโ .env
โ โโโ package.json
โ โโโ README.md
โ โโโ tailwind.config.ts
โ โโโ tsconfig.json
โโโ vite.config.js
```## ๐ป Installation
### ๐ง Prerequisites
- Node.js
- npm
- Docker### ๐ Setup Instructions
1. Clone the repository:
- `git clone https://github.com/coslynx/fitness-goals-web-app.git`
2. Navigate to the project directory:
- `cd fitness-goals-web-app`
3. Install dependencies:
- `npm install`## ๐๏ธ Usage
### ๐โโ๏ธ Running the Application
1. Start the development server:
- `npm start`
2. Open your browser and navigate to [http://localhost:3000](http://localhost:3000).### โ๏ธ Configuration
Adjust configuration settings in `.env` or `next.config.js` as needed.### ๐ Examples
- **๐ Example 1**: How to Set a Fitness Goal:
- Navigate to the "Goals" section.
- Click the "Add Goal" button.
- Enter the details of your goal, including the type (weight loss, distance running, etc.), target date, and any additional information.
- Click "Save Goal" to create the goal.
- **๐ Example 2**: How to Record a Workout:
- Navigate to the "Progress" section.
- Click the "Log Workout" button.
- Select the type of workout (cardio, strength training, etc.).
- Enter the duration and intensity of your workout.
- Click "Save Workout" to record your activity.
- **๐ Example 3**: How to Connect with Others:
- Navigate to the "Social" section.
- Search for other users to follow.
- Share your progress updates and achievements.
- Leave comments and provide encouragement to other users.## ๐ Hosting
### ๐ Deployment Instructions
#### Vercel
1. Log in to your Vercel account.
2. Click "New Project" and select "Import from Git".
3. Enter the repository URL: `https://github.com/coslynx/fitness-goals-web-app.git`.
4. Select the branch you want to deploy.
5. Click "Deploy".#### Netlify
1. Log in to your Netlify account.
2. Click "New site from Git".
3. Enter the repository URL: `https://github.com/coslynx/fitness-goals-web-app.git`.
4. Select the branch you want to deploy.
5. Click "Deploy".#### GitHub Pages
1. Navigate to the repository's settings page on GitHub.
2. Select "Pages" from the left-hand menu.
3. Choose the source branch and directory.
4. Click "Save".#### Other Hosting Services
Refer to the specific documentation for your chosen hosting service to deploy the application.### ๐ Environment Variables
- `NEXT_PUBLIC_SUPABASE_URL`: Your Supabase URL (obtain from Supabase project settings).
- `NEXT_PUBLIC_SUPABASE_ANON_KEY`: Your Supabase Anonymous Key (obtain from Supabase project settings).## ๐ API Documentation
### ๐ Endpoints
- **GET /api/auth/session**: Retrieves the current user session information.
- **POST /api/auth/signin**: Initiates the sign-in process using Google OAuth.
- **POST /api/auth/signout**: Logs out the current user.
- **GET /api/goals**: Retrieves a list of user goals.
- **POST /api/goals**: Creates a new goal for the user.
- **PUT /api/goals/:id**: Updates an existing goal.
- **DELETE /api/goals/:id**: Deletes a goal.
- **GET /api/progress**: Retrieves the user's workout progress.
- **POST /api/progress**: Records a new workout.### ๐ Authentication
The application uses Google OAuth for user authentication. After successfully signing in, a session token is issued and used to secure subsequent API requests.### ๐ Examples
- `curl -X GET http://localhost:3000/api/goals`## ๐ License
This project is licensed under the [MIT](https://choosealicense.com/licenses/mit/) License.## ๐ฅ Authors
- **CosLynxAI** - [https://github.com/coslynx](https://github.com/coslynx)
๐ CosLynx.com
Create Your Custom MVP in Minutes With CosLynxAI!