diff --git a/README.md b/README.md index a3f1c3f..49402db 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,95 @@ # Weather App -This version is only meant for publishing on the web. It is not meant for local development or use. +This is a simple weather application that allows users to view current weather data for a specified location. The app is built using React and TypeScript, and it fetches weather data from an external API. -You can find the web version of the Weather App at [https://weather.the1s.de](https://weather.the1s.de). +> For that we use the OpenWeatherMap API. You can get your own API key by signing up at [OpenWeatherMap](https://openweathermap.org/api). + +## Features + +- Search for weather by city name +- Display current weather conditions including temperature, humidity, and wind speed +- Responsive design for mobile and desktop views +- Change API key preferences +- Display weather data in a user-friendly format + +## Installation +### Prerequisites + +To install and run this application, you need the following tools: + +- Git (for cloning the repository) + +**and** + +- Node.js (v14 or higher) +- npm (Node Package Manager) + +**or** + +- Docker (for running the app in a container) + +### 1st step - Get the source code +**You can either clone the repository or download the latest release. Keep in mind that the cloned version may contain bugs.** +1. Clone the repository: + ```bash + git clone https://git.the1s.de/theis.gaedigk/weather-app.git + ``` + +**or** + +1. Download the latest release from the [releases page](https://git.the1s.de/theis.gaedigk/weather-app/releases/latest). +2. Unzip the downloaded file to your desired location. + +#### 2nd step - Using Node.js and npm + +1. Navigate to the frontend project directory: + ```bash + cd weather-app/frontend + ``` +2. Install dependencies: + ```bash + npm install + ``` +3. Start the development server: + ```bash + npm run dev + ``` +4. Open your browser and go to `http://localhost:7002` to view the app. + **Note:** There is also a backend server directory, which is currently not in use. - You can ignore it for now. + +**or** + +#### 2nd step - Using Docker + +1. Navigate to the root path project directory: + ```bash + cd weather-app + ``` +2. Run in a Docker container: + ```bash + docker compose up -d --build + ``` +3. Open your browser and go to `http://localhost:7002` to view the app. + **Note:** There is also a backend server directory, which is currently not in use. - You can ignore it for now. + +## Usage + +1. Get an API key from [OpenWeatherMap](https://openweathermap.org/api). +2. Click on the "Set API Key" button in the header to enter your API key. +3. Enter a city name in the search bar and press Enter or click the "Get Weather" button. + +**Now you can view the current weather data for the specified city!** + +# Other Information + +## Technologies Used + +- React +- TypeScript +- Tailwind CSS +- OpenWeatherMap API +- Vite ## Version -Currently hosted version: **1.0.0** +**On this branch (main) you will find the latest version of the weather app, which includes several improvements and bug fixes. But it is not yet fully functional. The app is still in development, and some features may not work as expected.** diff --git a/docker-compose.yml b/docker-compose.yml index da252ab..e490ed1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,29 +1,20 @@ services: - # frontend: - # container_name: frontend - # build: ./frontend - # network: - # - proxynet - # ports: - # - "7002:7002" - # environment: - # - CHOKIDAR_USEPOLLING=true - # volumes: - # - ./frontend:/app - # - /app/node_modules - # restart: unless-stopped - - backend: - container_name: backend - build: ./backend - network: - - proxynet + frontend: + container_name: frontend + build: ./frontend ports: - - "7001:7001" + - "7002:7002" + environment: + - CHOKIDAR_USEPOLLING=true volumes: - - ./backend:/bikelane-backend + - ./frontend:/app + - /app/node_modules restart: unless-stopped - -networks: - proxynet: - external: true +# backend: +# container_name: backend +# build: ./backend +# ports: +# - "7001:7001" +#volumes: +# - ./backend:/bikelane-backend +# restart: unless-stopped diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 5f3667f..7d384f8 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -9,4 +9,4 @@ COPY . . EXPOSE 7002 -CMD ["npm", "start"] \ No newline at end of file +CMD ["npm", "run", "dev"] \ No newline at end of file diff --git a/frontend/src/components/ChangeAPI.tsx b/frontend/src/components/ChangeAPI.tsx index 52d4c4b..ded28d8 100644 --- a/frontend/src/components/ChangeAPI.tsx +++ b/frontend/src/components/ChangeAPI.tsx @@ -64,7 +64,7 @@ const ChangeAPI: React.FC = ({ currentAPIKey, onClose }) => { />