{"id":16496627,"url":"https://github.com/nghiatranuit/artify-core","last_synced_at":"2025-08-13T22:04:55.913Z","repository":{"id":57501963,"uuid":"132984890","full_name":"NghiaTranUIT/artify-core","owner":"NghiaTranUIT","description":"The sweet heart of Artify 👑","archived":false,"fork":false,"pushed_at":"2019-02-23T04:33:27.000Z","size":4255,"stargazers_count":18,"open_issues_count":9,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-18T20:47:16.014Z","etag":null,"topics":["artify","macos","mvvm-architecture","open-source","rxswift","wallpaper"],"latest_commit_sha":null,"homepage":"https://artify.launchaco.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NghiaTranUIT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-11T03:33:21.000Z","updated_at":"2022-08-22T13:25:43.000Z","dependencies_parsed_at":"2022-09-13T08:01:17.117Z","dependency_job_id":null,"html_url":"https://github.com/NghiaTranUIT/artify-core","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NghiaTranUIT%2Fartify-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NghiaTranUIT%2Fartify-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NghiaTranUIT%2Fartify-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NghiaTranUIT%2Fartify-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NghiaTranUIT","download_url":"https://codeload.github.com/NghiaTranUIT/artify-core/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245108191,"owners_count":20562004,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artify","macos","mvvm-architecture","open-source","rxswift","wallpaper"],"created_at":"2024-10-11T14:35:42.300Z","updated_at":"2025-03-23T13:31:38.410Z","avatar_url":"https://github.com/NghiaTranUIT.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/NghiaTranUIT/artify-macos/blob/master/images/logo.png\" alt=\"Artify App Logo\" width=\"600\" height=\"auto\"/\u003e\n\u003c/p\u003e\n\n\u003ch2\u003e\n  Artify\n  \u003ca href=\"https://circleci.com/gh/NghiaTranUIT/artify-core\"\u003e\n    \u003cimg src=\"https://circleci.com/gh/NghiaTranUIT/artify-core/tree/master.svg?style=svg\" alt=\"Build Status\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/NghiaTranUIT/artify-macos/releases/tag/0.5.1\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/version-0.5.1-green.svg\" alt=\"0.5.1\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"./LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-GPL--3.0-blue.svg\"\u003e\n  \u003c/a\u003e\n\u003c/h2\u003e\n\nA Golang Backend core of [Artify](https://github.com/NghiaTranUIT/artify-macos), which is an application for bringing dedicatedly 18th century Arts to everyone.\n\n\u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e •\n\u003ca href=\"#downloads\"\u003eDownloads\u003c/a\u003e •\n\u003ca href=\"#technologies--3rd-libraries\"\u003eTechnologies \u0026 3rd libraries\u003c/a\u003e •\n\u003ca href=\"#development\"\u003eDevelopment\u003c/a\u003e •\n\u003ca href=\"#faq\"\u003eFAQ\u003c/a\u003e •\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/NghiaTranUIT/artify-core/blob/master/images/code_block.jpg\" width=\"100%\" /\u003e\n\u003c/div\u003e\n\n## Features\n* 😍 Hand-picked 18th Arts.\n* 👨‍💻 Generate beautiful wallpaper depend on your screen size.\n* 👑 Automatically fetch feature art for everydays.\n* 🌎 On-demand art, You can pick your favorites art-style, artist (Coming soon 🙇🏻‍♂️)\n* 🍉 Open-source project.\n* 💯 Totally Free.\n\n## Technologies \u0026 3rd libraries\n* [Golang](https://golang.org)\n* [PostgreSQL](https://www.postgresql.org)\n* [Docker](https://www.docker.com)\n* [Docker-Compose](https://docs.docker.com/compose/)\n* [Echo](https://github.com/labstack/echo)\n* [Dep](https://github.com/golang/dep)\n* [Pop](https://github.com/gobuffalo/pop)\n* [Soda Database Migration](https://github.com/gobuffalo/pop/tree/master/fizz)\n* [Go Releaser](https://github.com/goreleaser/goreleaser)\n* [CircleCI](https://circleci.com)\n* [Cloudflare](https://www.cloudflare.com)\n\n## Development\nFortunately, Artify Core is composed by Docker and Docker-Composed, so we don't need to install PostgreSQL manually.\nIn order to start the server, just following this short instruction.\n\n* Clone this project to your GO_PATH (/go/src/github.com/NghiaTranUIT/artify-core).\n* Open `docker-compose.yml` and update your postgre ENV\n* Open `ArtifyWorkspace.xcworkspace`\n```\nPOSTGRES_DB: your_db_name\nPOSTGRES_USER: your_username\nPOSTGRES_PASSWORD: your_password\n```\n* Happy coding 😍\n\n## Downloads\n### Artify Core\n\u003ca href='https://github.com/NghiaTranUIT/artify-core/releases/download/0.4.1/artify-core_0.4.1_macOS_64-bit.tar.gz'\u003eDownload Artify Core 0.4.1\u003c/a\u003e\n\n### Artify macOS app\n\u003ca href='https://github.com/NghiaTranUIT/artify-macos/releases/download/0.5.1/Artify.zip'\u003eDownload Artify 0.5.1\u003c/a\u003e\n\n### Scripts\n```\n# Install all essential gems\n$ bundle install\n\n# Install chrome driver\n$ brew tap homebrew/cask \u0026\u0026 brew cask install chromedriver\n\n# Add urls to the CSV file\n$ vim ./scripts/initial_data.csv\n\n# Start\n$ ruby ./scripts/csv_loader.rb --name ./scripts/initial_data.csv\n```\n\n## FAQ\n\n* **Why Golang? Why isn't it Ruby or NodeJS?**\n\n\u003e As the simplicity of Golang, I finally fall in love, whereas comparing how the complexity of Swift.\n\n\u003e Inspired by [Talk](https://www.youtube.com/watch?v=rFejpH_tAHM) by **Rob Pike** at dotGo 2015.\n\n* **You're mobile software Engineer. Why do you learn Golang, which intends for Backend?**\n\u003e 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 👨‍💻.\n\n* **What is the primary purpose of the existence of Artify Core?**\n\n\u003e The existence of Artify Core leads to the existence of [Artify macOS app](https://github.com/NghiaTranUIT/artify-macos).\n\n\u003e It's kind of a heart 🍣 in your chest.\n\n* **What is the current progress?**\n\n\u003e 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)\n\n* **Do you intend to publish Artify APIs (Production) to community?**\n\u003e 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 : \u003e\n\n* **Where can I get the Artify macOS app?**\n\u003e Here [Landing Page](https://artify.launchaco.com) and [Github](https://github.com/NghiaTranUIT/artify-macos)\n\n* **What is the technologies and 3rd libraries behind the scene?**\n\u003e Pls take a look at [Technologies](#technologies--3rd-libraries)\n\n* **Why the code is so clumsy?**\n\u003e 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 😅\n\n\u003e I appreciate your PR to refactor my code 🙇🏻‍♂️.\n\n* **Where does the Artify's resource come from?**\n\n\u003e Every art pictures are hand-picked from [WikiArt](https://www.wikiart.org).\n\n\u003e 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.\n\n\u003e 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 😅.\n\n* **Why do you use Docker? Is it over-engineering?**\n\u003e Docker and Docker-Compose minimize the redundant and boring steps when you setups the project runs smoothly at the first time.\n\n\u003e It often gets me nut when trying to install PostgreSQL driver manually and do all necessary stuff.\n\n\u003e Then, **Docker** is a rescue 👑.\n\n* **How to you think about Pop and Soda?**\n\u003e [Pop](https://github.com/gobuffalo/pop) and [Soda](https://github.com/gobuffalo/pop#migrations) are best combination ever I've seen.\n\n\u003e I tried [Gorm](https://github.com/jinzhu/gorm), but hit the wall when I'd do a db migration as simple as possible.\n\n\u003e 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.\n\n\u003e The [Pull Request](https://github.com/NghiaTranUIT/artify-core/issues/23) if you're interested 👨‍💻.\n\n* **What is the production Endpoint?**\n\u003e You can access to Production Endpoint from [https://megaton.xyz](https://megaton.xyz)\n\n\u003e This production endpoint is protected by Cloudflare (SSL and Authenticated Origin Pull) 👨‍💻.\n\n\u003e More detail at [#43](https://github.com/NghiaTranUIT/artify-core/issues/43).\n\n* **Can I become a contributor?**\n\n\u003e Definitely, I appreciate your effort to become a contributor. Clone the project and setup your workspace. Happy coding guys 🚢\n\n* **Do you have personal blog?**\n\u003e Yes, I often write blog at [My lab](www.nghiatran.me) 👨‍🍳\n\n* **How do I contact you?**\n\n\u003e Don't hesitate to open Issue on Github if you encounter any problems. Or give a welcome hug to me at vinhnghiatran@gmail.com.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnghiatranuit%2Fartify-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnghiatranuit%2Fartify-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnghiatranuit%2Fartify-core/lists"}