A personalized weather application that goes beyond basic forecasts to provide lifestyle recommendations, energy-saving tips, and a community platform for weather-related discussions.
- 3-day detailed weather forecasts 📅
- Real-time air quality monitoring 🌫️
- Weather-based activity recommendations 🏃♂️
- Customized energy conservation tips ⚡
- Weather-appropriate recipe suggestions 🍲
- User authentication & authorization 🔑
- Create and share weather-related posts 📝
- Bookmark favorite posts 📚
- Interact with community content 💬
- Personalized user profiles 👤
-
Frontend:
- React.js
- Context API for state management
- Responsive design for all devices
-
Backend:
- Node.js
- Express.js
- MongoDB with Mongoose
-
Authentication & Security:
- OAuth 2.0
- Bcrypt for password hashing
- JWT for secure sessions
-
APIs:
- RESTful API architecture
- Weather API for weather forecast
- GROQ API for recipes suggestions
- GEMINI API for activity suggestions
- Cloudinary for optimized image uploads
Node.js >= 14.x
MongoDB >= 4.x
npm >= 6.x
- Clone the repository
git clone https://github.com/Anamika1608/SkyMate.git
cd SkyMate
- Install dependencies for both frontend and backend
# Install backend dependencies
cd server
npm install
# Install frontend dependencies
cd ../client
npm install
- Set up environment variables
# In server directory, create .env file
MONGODB_URL=your_mongodb_url
JWT_SECRET=your_jwt_secret
OAUTH_CLIENT_ID=your_oauth_client_id
OAUTH_CLIENT_SECRET=your_oauth_client_secret
WEATHER_API_KEY=your_weather_api_key
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_secret
# In client directory, create .env file
VITE_GEMINI_API_KEY=your_api_key
VITE_GROQ_API_KEY=your_api_key
- Start the application
# Start backend server (from server directory)
npm run server
# Start frontend (from client directory)
npm run dev