https://github.com/nghiatranuit/artify-core
The sweet heart of Artify 👑
https://github.com/nghiatranuit/artify-core
artify macos mvvm-architecture open-source rxswift wallpaper
Last synced: 10 months ago
JSON representation
The sweet heart of Artify 👑
- Host: GitHub
- URL: https://github.com/nghiatranuit/artify-core
- Owner: NghiaTranUIT
- License: mit
- Created: 2018-05-11T03:33:21.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2019-02-23T04:33:27.000Z (over 7 years ago)
- Last Synced: 2025-03-18T20:47:16.014Z (over 1 year ago)
- Topics: artify, macos, mvvm-architecture, open-source, rxswift, wallpaper
- Language: Go
- Homepage: https://artify.launchaco.com
- Size: 4.06 MB
- Stars: 18
- Watchers: 3
- Forks: 3
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Artify
A Golang Backend core of [Artify](https://github.com/NghiaTranUIT/artify-macos), 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
* [Golang](https://golang.org)
* [PostgreSQL](https://www.postgresql.org)
* [Docker](https://www.docker.com)
* [Docker-Compose](https://docs.docker.com/compose/)
* [Echo](https://github.com/labstack/echo)
* [Dep](https://github.com/golang/dep)
* [Pop](https://github.com/gobuffalo/pop)
* [Soda Database Migration](https://github.com/gobuffalo/pop/tree/master/fizz)
* [Go Releaser](https://github.com/goreleaser/goreleaser)
* [CircleCI](https://circleci.com)
* [Cloudflare](https://www.cloudflare.com)
## 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](https://www.youtube.com/watch?v=rFejpH_tAHM) 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](https://github.com/NghiaTranUIT/artify-macos).
> It's kind of a heart 🍣 in your chest.
* **What is the current progress?**
> Here is [Open Ticket](https://github.com/NghiaTranUIT/artify-core/issues?q=is%3Aopen+is%3Aissue) and [Close Ticket](https://github.com/NghiaTranUIT/artify-core/issues?q=is%3Aissue+is%3Aclosed)
* **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](https://artify.launchaco.com) and [Github](https://github.com/NghiaTranUIT/artify-macos)
* **What is the technologies and 3rd libraries behind the scene?**
> Pls take a look at [Technologies](#technologies--3rd-libraries)
* **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](https://www.wikiart.org).
> If you wonder how I collect the data. Here is my partner, [Spider Man](https://github.com/NghiaTranUIT/artify-core/blob/master/scripts/spider.ruby), which is a Ruby script.
> The conjunction of [Nokogiri](http://www.nokogiri.org) and [Watir](http://watir.com) 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](https://github.com/gobuffalo/pop) and [Soda](https://github.com/gobuffalo/pop#migrations) are best combination ever I've seen.
> I tried [Gorm](https://github.com/jinzhu/gorm), but hit the wall when I'd do a db migration as simple as possible.
> Then, I come to [Soda](https://github.com/gobuffalo/pop). It mimics the Active Record from Rail. By using Soda, I could do all relation dabase, and Migration without potential riskes.
> The [Pull Request](https://github.com/NghiaTranUIT/artify-core/issues/23) if you're interested 👨💻.
* **What is the production Endpoint?**
> You can access to Production Endpoint from [https://megaton.xyz](https://megaton.xyz)
> This production endpoint is protected by Cloudflare (SSL and Authenticated Origin Pull) 👨💻.
> More detail at [#43](https://github.com/NghiaTranUIT/artify-core/issues/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](www.nghiatran.me) 👨🍳
* **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.