Skip to content

NghiaTranUIT/artify-core

Repository files navigation

Artify App Logo

Artify Build Status 0.5.1

A Golang Backend core of Artify, which is an application for bringing dedicatedly 18th century Arts to everyone.

Features β€’ Downloads β€’ Technologies & 3rd libraries β€’ Development β€’ FAQ β€’

Features

  • 😍 Hand-picked 18th Arts.
  • πŸ‘¨β€πŸ’» Generate beautiful wallpaper depend on your screen size.
  • πŸ‘‘ Automatically fetch feature art for everydays.
  • 🌎 On-demand art, You can pick your favorites art-style, artist (Coming soon πŸ™‡πŸ»β€β™‚οΈ)
  • πŸ‰ Open-source project.
  • πŸ’― Totally Free.

Technologies & 3rd libraries

Development

Fortunately, Artify Core is composed by Docker and Docker-Composed, so we don't need to install PostgreSQL manually. In order to start the server, just following this short instruction.

  • Clone this project to your GO_PATH (/go/src/github.com/NghiaTranUIT/artify-core).
  • Open docker-compose.yml and update your postgre ENV
  • Open ArtifyWorkspace.xcworkspace
POSTGRES_DB: your_db_name
POSTGRES_USER: your_username
POSTGRES_PASSWORD: your_password
  • Happy coding 😍

Downloads

Artify Core

Download Artify Core 0.4.1

Artify macOS app

Download Artify 0.5.1

Scripts

# Install all essential gems
$ bundle install

# Install chrome driver
$ brew tap homebrew/cask && brew cask install chromedriver

# Add urls to the CSV file
$ vim ./scripts/initial_data.csv

# Start
$ ruby ./scripts/csv_loader.rb --name ./scripts/initial_data.csv

FAQ

  • Why Golang? Why isn't it Ruby or NodeJS?

As the simplicity of Golang, I finally fall in love, whereas comparing how the complexity of Swift.

Inspired by Talk by Rob Pike at dotGo 2015.

  • You're mobile software Engineer. Why do you learn Golang, which intends for Backend?

Just aspire to become better version myself. I don't want to live in a comfortable zone permanently. Learn new stuff, new programming perspective is never fruitless πŸ‘¨β€πŸ’».

  • What is the primary purpose of the existence of Artify Core?

The existence of Artify Core leads to the existence of Artify macOS app.

It's kind of a heart 🍣 in your chest.

  • What is the current progress?

Here is Open Ticket and Close Ticket

  • Do you intend to publish Artify APIs (Production) to community?

For a second phrase, I definitely publish my Artify to community. If there are anyone, who is interested to this project, could be reuse effortlessly : >

  • Where can I get the Artify macOS app?

Here Landing Page and Github

  • What is the technologies and 3rd libraries behind the scene?

Pls take a look at Technologies

  • Why the code is so clumsy?

It's the first time I've written Golang for a production product. I aspire to learn Golang, and it's the best opportunity to apply what I've to learn πŸ˜…

I appreciate your PR to refactor my code πŸ™‡πŸ»β€β™‚οΈ.

  • Where does the Artify's resource come from?

Every art pictures are hand-picked from WikiArt.

If you wonder how I collect the data. Here is my partner, Spider Man, which is a Ruby script.

The conjunction of Nokogiri and Watir are perfect for this scenario. Indeed, I'm a lazy man, I don't want to collect data like a manual labor πŸ˜….

  • Why do you use Docker? Is it over-engineering?

Docker and Docker-Compose minimize the redundant and boring steps when you setups the project runs smoothly at the first time.

It often gets me nut when trying to install PostgreSQL driver manually and do all necessary stuff.

Then, Docker is a rescue πŸ‘‘.

  • How to you think about Pop and Soda?

Pop and Soda are best combination ever I've seen.

I tried Gorm, but hit the wall when I'd do a db migration as simple as possible.

Then, I come to Soda. It mimics the Active Record from Rail. By using Soda, I could do all relation dabase, and Migration without potential riskes.

The Pull Request if you're interested πŸ‘¨β€πŸ’».

  • What is the production Endpoint?

You can access to Production Endpoint from https://megaton.xyz

This production endpoint is protected by Cloudflare (SSL and Authenticated Origin Pull) πŸ‘¨β€πŸ’».

More detail at #43.

  • Can I become a contributor?

Definitely, I appreciate your effort to become a contributor. Clone the project and setup your workspace. Happy coding guys 🚒

  • Do you have personal blog?

Yes, I often write blog at My lab πŸ‘¨β€πŸ³

  • How do I contact you?

Don't hesitate to open Issue on Github if you encounter any problems. Or give a welcome hug to me at vinhnghiatran@gmail.com.