Skip to content
Personal project consisting of backend, frontend and android instant app
Kotlin TypeScript Java JavaScript CSS Dockerfile Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea
android
backend
common
docs
frontend
gplayapi
gradle/wrapper
scripts
.dockerignore
.editorconfig
.gitignore
LICENSE
MacbookMockup.psd
Procfile
README.md
app.json
build.gradle
build.sh
buildAndRestartDocker.sh
deployToHeroku.sh
docker-compose.yml
gradle.properties
gradlew
gradlew.bat
heroku.yml
installRelease.sh
settings.gradle
spotless.gradle
spotless.license.kt
versionsPlugin.gradle

README.md

stasbar.com

Enterprise ready, personal webpage pet project.

Desktop Mobile1 Mobile2
Desktop Screen Desktop Screen Desktop Screen

Technology Stack

                    +-----------+Backend+----------+
                    | +---------|Heroku+---------+ |
                    | | +-------+Docker+-------+ | |
                    | | |                      | | |
                    | | |    +--+NodeJS+-+     | | |     +------------+
+Frontend+------+   | | |    | Typescript+---------------> Google Play|
|               |   | | |    +----------^+     | | |     +------------+
| +Reactjs+---+ |   | | |               |      | | |
| |TypeScript | |   | | |  +-----+Ktor+-+---+  | | |
| +-----------+ +---------->                |  | | |     +-------------+
+---------------+   | | |  |                |  | | |  +--> Google Books|
                    | | |  |  Kotlin/Java   +---------+  +-------------+
+Android+-------+   | | |  |                |  | | |  |
|               +---------->                |  | | |  |  +-----------+
| +Instant+App+ |   | | |  +------------+---+  | | |  +---> Goodreads|
| |  Kotlin   | |   | | |               |      | | |  |  +-----------+
| +-----------+ |   | | |    ++Database+v+     | | |  |
+---------------+   | | |    | Postgres  |     | | |  |  +------------+
                    | | |    |    H2     |     | | |  +--> openlibrary|
                    | | |    +-----------+     | | |     +------------+
                    | | |                      | | |
                    | | +----------------------+ | |
                    | +--------------------------+ |
                    +------------------------------+

Backend Server

Google Play Api

Frontend WebApp

Android Application

How to build and run

Building the code

  • Make sure you have the Android SDK installed
  • Open the project in IntelliJ IDEA
  • Create a file local.properties in the root directory of the project, pointing to your Android SDK installation. On Mac OS, the contents should be sdk.dir=/Users/<your username>/Library/Android/sdk. On other OSes, please adjust accordingly.
  • Run ./gradlew build

Running the backend

  • Add file api.properties with your Goodreads and Database credentials GOODREADS_API_KEY, GOODREADS_USER_ID, DATABASE_USER and DATABASE_PASSWORD
  • Run ./gradlew backend:run from the command line or from Gradle tool window
  • The backend will start serving on localhost:8888

Deploying on heroku

  • ./deployToHeroku.sh or manually
  • heroku container:push web build an image and push it to Container Registry
  • heroku container:release web release the image to the app or
  • heroku stack:set container && git push heroku master

Running the Android app

  • Create a run configuration of type "Android App"
  • Select module "app" in the run configuration settings
  • Run the configuration
  • Select the emulator or connected device, as normal

TODO

  • menu item selection mechanism from
  • redirect stasbar.com/ to stasbar.com/me so it doesn't match stasbar.com/* pattern
  • Use JetPack Navigation Component how

Licences


Copyright 2019 Stanislaw stasbar Baranski

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


         __             __
   _____/ /_____ ______/ /_  ____ ______
  / ___/ __/ __ `/ ___/ __ \/ __ `/ ___/
 (__  ) /_/ /_/ (__  ) /_/ / /_/ / /
/____/\__/\__,_/____/_.___/\__,_/_/
           stasbar@stasbar.com
You can’t perform that action at this time.