A real-time walking activity tracker that helps you monitor and visualize your walking activities with interactive data visualizations.
- Real-time Activity Tracking: Track your walks in real-time using GPS
- Interactive Maps: View your walking routes on interactive maps
- Location Recording: Automatically records street names and locations
- Activity Dashboard:
- Overview of total distance, time, and number of activities
- Weekly progress visualization
- Recent activities list with maps
- Responsive Design: Works seamlessly on mobile and desktop devices
-
Frontend:
- React with TypeScript
- TailwindCSS + Shadcn UI for styling
- React Query for data fetching
- Recharts for data visualization
- React Leaflet for maps
- Wouter for routing
-
Backend:
- Express.js
- PostgreSQL with Drizzle ORM
- OpenStreetMap API for geocoding
- Node.js (v20 or later)
- PostgreSQL database
- NPM or Yarn
- Clone the repository
git clone https://github.com/yourusername/walkwise-tracker.git
cd walkwise-tracker
- Install dependencies
npm install
- Set up the database
npm run db:push
- Start the development server
npm run dev
The application will be available at http://localhost:5000
- Click the "Start Walking" button on the dashboard
- Allow location access when prompted
- Your walk will be tracked automatically
- View real-time stats including:
- Duration
- Distance
- Current route on the map
- Click "End Walk" when finished
- Your walk details will be saved with:
- Total distance
- Duration
- Route map
- Location name
- Dashboard shows:
- Total statistics
- Weekly progress chart
- Recent activities list
- Each activity displays:
- Duration and distance
- Location name
- Route map
- Time since activity
GET /api/activities
// Returns list of all activities
POST /api/activities/start
// Starts a new activity
POST /api/activities/:id/end
// Ends an activity with route and stats
├── client/
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── lib/ # Utilities and API clients
│ │ └── hooks/ # Custom React hooks
├── server/
│ ├── routes.ts # API routes
│ └── index.ts # Server setup
└── db/
└── schema.ts # Database schema
activities {
id: serial
startTime: timestamp
endTime: timestamp
duration: numeric
distance: numeric
path: text
location: text
}
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.