Abstract
Ocula is an open-source Mobile App Development project. The free and open-source progressive weather app. Ocula is a weather app built entirely using modern web standards in an attempt to create a great looking weather app that anyone can use on any device while also providing a simple PWA template for developers to build upon. It is built using Vue, TypeScript. Key capabilities include: No location restrictions - available worldwide; Daily forecast for up to 8 days; Hourly forecast data for up to 24 hours. The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building a Mobile App Development mini project or final-year project.
1. Introduction
Ocula is a weather app built entirely using modern web standards in an attempt to create a great looking weather app that anyone can use on any device while also providing a simple PWA template for developers to build upon.
I set out to create Ocula as a replacement for my favourite weather app - Pocket Weather, which was unfortunately shut down at the end of 2019 due to high maintenance costs.
2. Objective
The free and open-source progressive weather app
This project demonstrates how Vue, TypeScript can be applied to a real-world Mobile App Development problem.
3. Key Features / Modules
- No location restrictions - available worldwide
- Daily forecast for up to 8 days
- Hourly forecast data for up to 24 hours
- Trend charts for hourly temp, rainfall and wind
- Ocean tide information with tide height trend chart
- Interactive weather maps with 6 different map types (radar, precipitation, temp, cloud, wind, pressure)
- Frame-by-frame playback for radar images to visualise incoming rain
- Dark/Light Themes. Default theme changes based on current time of day
- Options to reorder or hide forecast sections, set your prefferred map type, units and more
- Open-source, privacy friendly, and best of all - free
4. Technology Stack
5. System Requirements
General requirements for this technology stack — check the README for exact versions.
- Node.js (LTS) and npm
- Node.js (LTS) and npm / yarn / pnpm
- VS Code or any code editor
- Git (to clone the repository)
6. Installation & Setup
git clone https://github.com/andrewcourtice/ocula.git
cd oculaFull 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.
- Which framework is used and why (native vs cross-platform)?
- How is app state managed across screens?
- Where is the data stored — locally, Firebase or a REST backend?
- How are permissions (camera, location, storage) handled?
- How would you publish this app to the Play Store / App Store?
9. Source Code & License
This project is developed by andrewcourtice and published on GitHub under the MIT 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