- π Overview
- π¦ Features
- π Structure
- π» Installation
- ποΈ Usage
- π Hosting
- π License
- π Authors
This repository houses the FitTrack Minimum Viable Product (MVP), a web application designed to enhance the fitness journey by connecting individuals through collaborative goal setting, progress tracking, and social interaction.
Feature | Description | |
---|---|---|
βοΈ | Architecture | The codebase is structured using a modular architecture, separating functionalities into distinct directories, promoting maintainability and scalability. |
π | Documentation | Comprehensive README.md file outlines project details, instructions, and essential information for developers and users. |
π | Dependencies | Utilizes essential libraries like React, Next.js, Tailwind CSS, Zustand, Express.js, Mongoose, NextAuth.js, and others to ensure seamless functionality. |
𧩠| Modularity | The code is structured for modularity, with dedicated directories for components, pages, and utilities, promoting code reuse and manageability. |
π§ͺ | Testing | Implemented unit tests using Jest and integration tests using Cypress to ensure code quality and functionality. |
β‘οΈ | Performance | The application incorporates performance optimization techniques, such as caching and lazy loading, to deliver a smooth user experience. |
π | Security | Employs robust security measures, including input validation, authentication, and authorization, to safeguard user data and application integrity. |
π | Version Control | Uses Git for version control with a clear branching strategy, allowing for efficient collaboration and code management. |
π | Integrations | Seamlessly integrates with popular fitness trackers like Fitbit, Garmin, and Apple Watch through their respective APIs. |
πΆ | Scalability | Designed with scalability in mind, using a cloud-based architecture and techniques like database sharding and serverless functions for handling increased user traffic. |
βββ 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
- Node.js
- npm
- Docker
- Clone the repository:
git clone https://github.com/coslynx/FitTrack-qwtfzh.git
- Navigate to the project directory:
cd FitTrack-qwtfzh
- Install dependencies:
npm install
- Start the development server:
npm run dev
- Open your browser and navigate to http://localhost:3000.
Adjust configuration settings in next.config.js
or .env
.
- π Example 1: Creating a Goal - The user can set a specific weight loss goal, define the desired weight, and set a deadline for achieving the target.
- π Example 2: Tracking Progress - The user can connect their Fitbit account and automatically track their daily steps, calories burned, and other fitness metrics.
- π Example 3: Sharing Progress - The user can share their progress on their social feed, join fitness groups with like-minded individuals, and encourage each other through motivational messages.
- Login to your Vercel account.
- Choose "New Project" from the dashboard.
- Select "Import Git Repository" and provide the link to the GitHub repository.
- Configure any deployment settings as required.
- Click "Deploy."
- Create a Netlify account.
- Select "New site from Git."
- Connect your GitHub account and select the "FitTrack-qwtfzh" repository.
- Configure any deployment settings as required.
- Click "Deploy."
- Navigate to the GitHub repository's Settings.
- Under "Pages," select a branch to deploy.
- Choose the "root" directory for deployment.
- Click "Save."
- Install the Heroku CLI:
npm install -g heroku
- Log in to Heroku:
heroku login
- Create a new Heroku app:
heroku create
- Deploy the code:
git push heroku main
DATABASE_URL
: The connection string for the MongoDB Atlas database.
- GET /api/auth/signup: Creates a new user account.
- GET /api/auth/login: Logs in an existing user.
- GET /api/auth/logout: Logs out the current user.
- GET /api/goals: Retrieves all goals for the current user.
- POST /api/goals: Creates a new goal for the current user.
- PUT /api/goals/:id: Updates an existing goal.
- DELETE /api/goals/:id: Deletes a goal.
- GET /api/progress/:userId: Retrieves progress data for a specific user.
- POST /api/progress/:goalId: Records new progress data for a specific goal.
- PUT /api/progress/:id: Updates existing progress data.
- DELETE /api/progress/:id: Deletes progress data.
Uses JWT tokens for authentication, provided by NextAuth.js
curl -X GET http://localhost:3000/api/goals
This project is licensed under the MIT License - see the LICENSE file for details.
Create Your Custom MVP in Minutes With CosLynxAI!