Giter VIP home page Giter VIP logo

engeldev's Introduction

EngelDev

This is the code that powers engel.dev

Project Setup

Front End

The front end is comprised of HTML, CSS, and JavaScript. Simply open index.html in a web browser and you are good to go.

API

In order to deliver dynamic content, this project includes an API layer which is built using Kotin + ktor. For the best experience, download and install IntelliJ IDEA if you haven't done so already.

Environment Variables

To keep secrets, secret, and to enable switching between the real Google Cloud and the emulated one, there are a few environment variables to set:

  • MAILCHIMP_KEY=YOUR-MAILCHIMP-API-KEY
  • YOUTUBE_KEY=YOUR-YOUTUBE-DATA-API-KEY
  • KTOR_ENVIRONMENT=local OR production

Dependencies

In order to run this project locally you will want to make use of Google Cloud Emulators. More specifically this project uses Google Cloud Datastore to cache YouTube information so you will want to follow the instructions for installing and running the Datastore Emulator.

Once you have the emulator set-up, you can run the following command to start the emulator: gcloud beta emulators datastore start --no-store-on-disk

Note: the no-store-on-disk flag is used to avoid storing unnecessary data between development cycles.

Building The Project

Building and running the project is as simple as clicking the run button in IntelliJ IDEA and refreshing the index.html page in your web browser. Moving towards production builds and executing the build without IntelliJ IDEA running involves a couple extra steps.

  1. Build the API ktor application: ./gradlew installDist
  2. Build the Docker container: docker build . -t api
  3. Run the Docker container: docker run -p 8080:8080 api
  4. Send code to Google Cloud Build: gcloud builds submit --tag gcr.io/YOUR-PROJECT-HERE/api .

engeldev's People

Contributors

codyengel avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.