Skip to content

moshekravitz/sun_be_gone

Repository files navigation

Sun Be Gone

Overview

Sun Be Gone is a mobile app developed using Flutter that helps users determine the best side to sit on a bus to avoid direct sunlight during their journey.

Available at Google Play

You can download the app from the Play Store.

Features

  • Sun Avoidance Prediction: Utilizes real-time data and user location to suggest the optimal side to sit on based on the position of the sun.
  • User-Friendly Interface: Simple and intuitive design for easy navigation and usage.

Installation

Requirements

  • Flutter SDK

Getting Started

  1. Clone the repository:
$ git clone https://github.com/moshekravitz/sun_be_gone.git
  1. Navigate to the project directory:
$ cd sun_be_gone
  1. Install dependencies:
$ flutter pub get
  1. Run the app:
$ flutter run

Technology Stack

  • Flutter Framework: Used for building the mobile application.
  • Bloc Pattern: Implemented for efficient state management, providing a clear separation between business logic and UI components.
  • Custom Sun Position Calculation Package: Developed to calculate the sun's position along the bus route and determine the best seating to avoid sunlight.

Sun Position Calculation Package

This project includes a custom package specifically designed to calculate the position of the sun along a bus route. The package provides functionality for:

  • Sun Position Calculation: Determining the sun's position based on geographic coordinates and time, aiding in suggesting the best seat to avoid direct sunlight.
    • This part of the package is written using a modified version of the Solar Position Algorithm (SPA)
  • Route Analysis: Analyzing the bus route to predict the varying angles of sunlight at different times.
    • this includes calculating the overrall sitting position which is done by calculating the the angle between a given direction vector on the route and the sun (for each geopoint of the route)

Contributing

Contributions are welcome! If you'd like to contribute to this project, please follow these steps:

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/your-feature)
  3. Make your changes
  4. Commit your changes (git commit -am 'Add some feature')
  5. Push to the branch (git push origin feature/your-feature)
  6. Create a pull request

Acknowledgments

This software uses the following open source packages:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published