Awesome
<p align="center"> <img src="https://github.com/NghiaTranUIT/artify-macos/blob/master/images/logo.png" alt="Artify App Logo" width="600" height="auto"/> </p> <h2> Artify <a href="https://circleci.com/gh/NghiaTranUIT/artify-core"> <img src="https://circleci.com/gh/NghiaTranUIT/artify-core/tree/master.svg?style=svg" alt="Build Status"> </a> <a href="https://github.com/NghiaTranUIT/artify-macos/releases/tag/0.5.1"> <img src="https://img.shields.io/badge/version-0.5.1-green.svg" alt="0.5.1"> </a> <a href="./LICENSE"> <img src="https://img.shields.io/badge/license-GPL--3.0-blue.svg"> </a> </h2>A Golang Backend core of Artify, which is an application for bringing dedicatedly 18th century Arts to everyone.
<a href="#features">Features</a> • <a href="#downloads">Downloads</a> • <a href="#technologies--3rd-libraries">Technologies & 3rd libraries</a> • <a href="#development">Development</a> • <a href="#faq">FAQ</a> •
<div align="center"> <img src="https://github.com/NghiaTranUIT/artify-core/blob/master/images/code_block.jpg" width="100%" /> </div>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
- Golang
- PostgreSQL
- Docker
- Docker-Compose
- Echo
- Dep
- Pop
- Soda Database Migration
- Go Releaser
- CircleCI
- Cloudflare
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
<a href='https://github.com/NghiaTranUIT/artify-core/releases/download/0.4.1/artify-core_0.4.1_macOS_64-bit.tar.gz'>Download Artify Core 0.4.1</a>
Artify macOS app
<a href='https://github.com/NghiaTranUIT/artify-macos/releases/download/0.5.1/Artify.zip'>Download Artify 0.5.1</a>
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?
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.