A React Native web application that helps cyclists find the best days for biking by providing detailed weather forecasts with cycling-specific condition scores.
- 3-Day Weather Forecast with cycling-specific scores
- Detailed weather conditions (temperature, wind, humidity, precipitation)
- Color-coded scoring system for biking conditions
- Responsive design that works across all devices
- Dark theme with modern UI
Before you begin, ensure you have the following installed:
- Clone the repository:
git clone https://github.com/yourusername/BestBikingDay.git
cd BestBikingDay
- Install dependencies:
npm install
- Create a
.env
file in the root directory:
OPENWEATHER_API_KEY=your_api_key_here
Replace your_api_key_here
with your OpenWeatherMap API key. You can get one at OpenWeatherMap.
To start the development server:
npm start
This will start the Expo development server. You can then:
- Press
w
to open in web browser - Use the Expo Go app on your mobile device to scan the QR code
- Press
a
to open in Android emulator - Press
i
to open in iOS simulator
- Create a production build:
npm run build:web
This will create a production-ready build in the web-build
directory.
For mobile builds, you'll need an Expo account.
- Install Expo CLI globally:
npm install -g expo-cli
- Build for Android:
expo build:android
- Build for iOS:
expo build:ios
-
Create a new site on Netlify
-
Configure build settings:
- Build command:
npm run build:web
- Publish directory:
dist
- Node version: 18 (or your preferred version)
- Build command:
-
Add environment variables:
- Go to Site settings > Build & deploy > Environment
- Add
OPENWEATHER_API_KEY
with your API key
-
Deploy methods:
- Connect your GitHub repository to Netlify
- Configure automatic deployments
- Push changes to your repository to trigger builds
- Build locally:
npm run build:web
- Drag and drop the
dist
folder to Netlify's UI
- Install Netlify CLI:
npm install -g netlify-cli
- Login to Netlify:
netlify login
- Deploy:
netlify deploy --dir dist--prod
BestBikingDay/
├── app/ # Main application code
│ ├── services/ # API and business logic
│ └── index.tsx # Main screen
├── components/ # Reusable components
├── assets/ # Static assets
├── .env # Environment variables
└── package.json # Dependencies and scripts
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Weather data provided by OpenWeatherMap
- Built with React Native and Expo
- Deployed with Netlify