Skip to content

SpaceHub is an open-source app that aims to improve knowledge and accessibility on spaceflights for people around the globe. The source code is open source under the GPLv3 Licence and is built by following modern Android Development like Kotlin, Hilt, Coroutines, Flows, JetPack and designed with the new Material Design 3 guidelines.

License

Notifications You must be signed in to change notification settings

LPirro/SpaceHub

Repository files navigation

SpaceHub - Spaceflight Tracker 🚀

SpaceHub is an open-source app that aims to improve knowledge and accessibility on spaceflights for people around the globe. The source code is open source under the GPLv3 Licence and is built by following modern Android Development like Hilt, Coroutines, Flows, JetPack and designed with the new Material Design 3 guidelines.

Disclaimer - Project Under Development 🚧

This project is a work in progress and under development. It may contain uncompleted features, bugs and it may be subject to changes during this stage. The first v1 stable version will be released in the Google Play Store in Q1 2023.

Project Setup / Before building

Is a bad practice to store API Keys inside Git Repositories so you will need to add them manually or the project won't compile.

Please, add the Google Maps API Key inside your local.properties file in the root directory of the project:

sdk.dir=/Users/tonystark/Library/Android/sdk
MAPS_API_KEY=yourApiKey

Note: If you want to test the project without Google Maps functionality you can add a fake Google Maps API key like MAPS_API_KEY=1234

Tech stack

  • Minimum SDK 24
  • 100% Kotlin
  • Multi-module
  • Bitrise for CI/CD
  • Material Design 3
  • Dark/Light mode support
  • Coroutines + Flow for asynchronous operations
  • HILT for Dependency Injection
  • Architecture
    • MVVM
    • Clean Architecture
    • Repository Pattern
  • Jetpack
    • Navigation: For handling Navigation inside the app
    • LifeCycle: For managing UI related data in a LifeCycle conscious way
    • ViewBinding: For binding UI views into controllers (like Fragments, Activities)
    • Room: For creating a Database by providing an abstraction layer over SQLite
  • Retrofit / OkHttp3: For performing network request
  • Robolectric: For Unit Test
  • Mockito: Mocking framework for Unit Test
  • Turbine: Turbine is a small testing library for kotlinx.coroutines Flow.
  • Glide: For network image loading
  • Material Components: For building the UI
  • Ktlint: For code-formatting and for keeping the code style consistent across the project

Layer Architecture

This app is based on MVVM architecture and follows Clean Architecture principles with the repository pattern

Architecture Diagram

Design

For designing this app, I used Figma, one of the industry standard design tools for creating UI and UX for mobile and Desktop. I will post the artboard links soon.

API

SpaceHub uses APIs from Launch Library 2 and Spaceflight News API for collecting the Spaceflights information.

Find this repository useful?

Support it by giving a star ⭐️ and follow me on Github

License

SpaceHub - Designed and Developed by LPirro (Leonardo Pirro)
Copyright (C) 2023 Leonardo Pirro

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

You can read the full licence here

About

SpaceHub is an open-source app that aims to improve knowledge and accessibility on spaceflights for people around the globe. The source code is open source under the GPLv3 Licence and is built by following modern Android Development like Kotlin, Hilt, Coroutines, Flows, JetPack and designed with the new Material Design 3 guidelines.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages