Forecasting is a simple full-stack weather forecast application that includes a web front-end, a backend API service, and an iOS client. The project demonstrates a complete solution by combining modern web technologies with native iOS development.
- Full-Stack Implementation: Combines a web front-end, backend API services, and an iOS client.
- Real-Time Weather Forecast: Fetches and displays the latest weather data.
- Modern Tech Stack: Built with React, TypeScript, Bun, Tailwind CSS, Nest.js, and Prisma.
- Efficient Development: Uses a monorepo workspace to manage front-end and backend dependencies, with Husky and lint-staged ensuring code quality.
- Framework & Language: React + TypeScript
- Styling: Tailwind CSS (integrated with
prettier-plugin-tailwindcssto maintain a consistent code style) - Runtime & Build Tool: Bun
- Framework: Built with Nest.js
- Database ORM: Uses Prisma for database interaction
- Language & Runtime: TypeScript + Bun
- API Service: Provides endpoints to deliver weather data
- Development Language: Swift / SwiftUI (refer to the
TForecastdirectory for details) - Functionality: A native iOS client that interacts with the backend to fetch and display weather data
- Bun installed
- Xcode installed (if building the iOS application)
- Git
git clone https://github.com/Hirate99/forecasting.git
cd forecastingThis project uses a monorepo workspace to automatically manage dependencies for both front-end and back-end:
bun installStart the development servers for both the front-end and back-end:
bun run devThis command uses concurrently to run both servers simultaneously.
Build all projects:
bun run buildStart the backend service in production mode:
bun run startNavigate to the TForecast directory, open the corresponding Xcode project file, and follow the provided instructions to build and run the iOS app.
forecasting/
├── frontend/ # Front-end React application
├── backend/ # Backend API service (using Nest.js and Prisma)
└── TForecast/ # iOS application project
- Git Hooks: Husky and lint-staged automatically format code before commits.
- Concurrent Development: The concurrently tool is used to run both front-end and backend development servers simultaneously, enhancing development efficiency.
This project is licensed under the GPL-3.0 License.