Wego

weather app for the terminal

Mobile App DevelopmentGoISC

Abstract

Wego is an open-source Mobile App Development project. Weather app for the terminal. It is built using Go. Key capabilities include: show forecast for 1 to 7 days; multiple backends: openweathermap, weatherapi, open-meteo, smhi, caiyun, worldweatheronline, pirateweather, and json; multiple frontends: ascii-art-table (default), emoji, markdown, and json. The complete source code is publicly available on GitHub under the ISC License, making it a useful reference for students building a Mobile App Development mini project or final-year project.

1. Introduction

weather app for the terminal

2. Objective

weather app for the terminal

This project demonstrates how Go can be applied to a real-world Mobile App Development problem.

3. Key Features / Modules

  • show forecast for 1 to 7 days
  • multiple backends: openweathermap, weatherapi, open-meteo, smhi, caiyun, worldweatheronline, pirateweather, and json
  • multiple frontends: ascii-art-table (default), emoji, markdown, and json
  • displayed info:
  • temperature range (felt and measured)
  • windspeed and direction
  • viewing distance
  • precipitation amount and probability
  • humidity
  • unit systems: metric, imperial, si, metric-ms

4. Technology Stack

Go
  • A working Go
  • utf-8 terminal with 256 colors (for ascii-art-table and emoji frontends)
  • A monospaced font containing all the required runes (e.g. dejavu sans mono)
  • An API key for most backends (see Setup below; open-meteo and smhi are free and keyless)

5. System Requirements

General requirements for this technology stack — check the README for exact versions.

  • Go 1.20 or later
  • Git (to clone the repository)

6. Installation & Setup

git clone https://github.com/schachmat/wego.git
cd wego
  1. Run wego once. You will get an error message, but the wegorc config file
  2. Choose a backend and configure it (see below). Then run wego again.
  3. You may want to adjust other preferences like days, units and …-lang as
  4. Run wego once again and you should get the weather forecast for the current
  5. If you're visiting someone in e.g. London over the weekend, just run wego 4
  6. $WEGORC environment variable (highest precedence).
  7. $XDG_CONFIG_HOME/wego/wegorc (or OS equivalent via os.UserConfigDir()), if it exists.
  8. $HOME/.wegorc (legacy location, for backward compatibility), if it exists.
go install github.com/schachmat/wego@latest

Full setup instructions are in the project README.

7. Future Enhancements

Suggested extensions you can add to make this your own project.

  • Add push notifications with Firebase Cloud Messaging
  • Add offline support with local caching
  • Publish an internal test build on the Play Store

8. Viva / Review Questions

Common questions examiners ask for projects in this domain.

  1. Which framework is used and why (native vs cross-platform)?
  2. How is app state managed across screens?
  3. Where is the data stored — locally, Firebase or a REST backend?
  4. How are permissions (camera, location, storage) handled?
  5. How would you publish this app to the Play Store / App Store?

9. Source Code & License

This project is developed by schachmat and published on GitHub under the ISC License. Please follow the license terms and credit the original author when you use or modify this code.

Want to build this as your internship project?

Work on a Mobile App Development project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.

Apply for Mobile App Development Internship