• Stars
    star
    384
  • Rank 111,726 (Top 3 %)
  • Language
    JavaScript
  • License
    BSD 2-Clause "Sim...
  • Created about 10 years ago
  • Updated almost 10 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Your flat icons manager and font builder.

MyIcons

links: homepage, screenshots

Yes, this is yet another web icon font builder. But it's also designed to be your or your team's flat icons manager with enhanced team member management and revisions tracking. It is also very easy to deploy.

The main idea of this web-based application is:

  1. At first you upload font files (.tff or .woff) with the corresponding CSS. The application will retrieve the shapes and names of icons and build them into a pack.
  2. Then you add a new collection to organize the icons. You can pick icons from a pack or upload a SVG icon file directly.
  3. After added icons to a collection, you can preview the icons in your own web pages with live testing. Live testing provides a URL to testing CSS that you can insert into your page when debuging
  4. At last, when you are satisfied with the icons' appearance, you can download the icon fonts built and replace the live testing url.

There are nine build-in smart labels which classify the icons automatically immediately after uploaded.

This web app can be deployed to heroku in 3 minutes. Go to Get Started

Compatibility

Both this application and the fonts it builds have been tested under IE11+, Chrome, Firefox and Safari. The fonts this application builds will work under IE8 and later. But IE 6 and 7 won't be supported.

Known issues and possible improvements

  1. Some public web icon fonts can not be uploaded (incompatible with the app's parser).
  2. No webhooks supported so that you can not integrate it with slack or other services (feature in plan).
  3. Modification of the shape of icons is not supported (feature in plan).

Pull request is welcome. Also feel free to report a issue or request a feature, but don't forget to support by donation.

Get started

The simplest way to get started is to deploy this app to heroku. It will be same simple if you have a heroku-like enviroment such as dokku and deis. You can also deploy it on you own Linux server with just a few more steps.

Deploy to heroku in 3 minutes

Before deploying to heroku, please make sure you have already had a heroku account and the heroku cli tools has been installed.

At first, clone this repo with git:

git clone https://github.com/shanzi/myicons.git

Then cd myicons and configure your local settings:

cp myicons/local_settings.py.example myicons/local_settings.py

The default contents of myicons/local_settings.py is OK with heroku, but DON'T forget to replace the value of SECRET_KEY with a new generated key!

Before commit, you have to remove local_settings.py from .gitignore:

sed -i '' /local_settings.py/d .gitignore
git add .
git ci -m'add local settings'

Now you can start deploying to heroku, please use the build pack I forked for this app, replace [your app name] with your desired app name:

heroku create [your app name] -s cedar-14 -b https://github.com/shanzi/heroku-buildpack-python.git
git push heroku master

Then the heroku will start building the app. After all done, init your database and super user:

heroku run python manage.py migrate
heroku run python manage.py createsuperuser

Fill in your super user's information according to the prompt's instructions.

At last, start your web process and start using MyIcons!

heroku scale web=1
heroku open

Deploy to dokku/deis

Dokku and deis are two of heroku-like systems you can use on your own server or VPS. They are compitible to heroku's build packs, so with the build pack prepared for this app, there won't be any significant differences with deploying to heroku.

In case you'd like to use MySQL/MariaDB instead of PostgreSQL(which is heroku's default database), you can modify requirements.txt and replace psycopg2 with MySQLdb, Please refer to django's documentation for using with MySQL.

Deploy to your own server

Deploying MyIcons to your own server is a little complex because of the dependency of fontforge. You have to install python-fontforge with your linux distribution's packages manager. For example, under Ubuntu 14.04, you run

apt-get install python-fontforge

Please refer to fontforge's instruction.

If you'd like to use the system's python environment, what you do next is just install the dependencies of MyIcons by execute:

pip install -r requirements.txt

And then initialize the database like that has described for heroku. You also have to configure databases yourself. All database compitible with django is OK for MyIcons. You may need refer to dj-database-url.

Fontforge's python extension (which is needed by MyIcons) doesn't work well with virtualenv, So it is recommended that you use docker for enviroment separation.

The official docker image for MyIcons is in future's plan.

About the author

I regard myself as an indie web and Mac developer. You can find me at twitter. I am still a student at SJTU, so don't forget to donate to support the development of this application. :)

Donation

You can support the development of MyIcons by donation with Gratipay or Paypal.

Note that the tips on gratipay will recur every week by default so you should keep an eye on it if you'd like to stop giving tips someday.

As for paypal, it will charge a lot on the donation itself, so please don't donate too little.

License

This application itself is released under BSD license, see LICENSE.

All 3rd party open sourced libs distributed with this application are still under their own license.

More Repositories

1

diumoo

Third party Douban.FM client for Mac
Objective-C
377
star
2

sketch-rendering

A demo of Three.js that implements sketch style rendering
JavaScript
121
star
3

wu

A watch utility written in Go
Go
85
star
4

NvmEngine

Experimental KV store engine on non-volatile memory
C++
73
star
5

Telegram-ChatGPT

A customizable Telegram bot with a ChatGPT (or GPT4, bring your own API key) backend. You can configure the bot’s context and prompt in template settings.
Rust
27
star
6

iconfontr

An icon font viewer and material exporter
Objective-C
20
star
7

autoHEADER

A vim plugin used to auto insert code comment header block
Vim Script
15
star
8

hackerRSS

A hacker news RSS generator
CoffeeScript
11
star
9

algo-notes

My notes of learning and practicing algorithms
Java
8
star
10

push-ups

This app help you create events for your push-ups exercise plan according to handredpushups.com
Clojure
5
star
11

IMColorPalette

An elegance color palette view for Mac
Objective-C
3
star
12

tchelper

A helper for practicing algorithm with TopCoder
JavaScript
3
star
13

detie

Weibo new words detector
Python
3
star
14

qiezi

My Avatar In 3D
2
star
15

posi

A Google Latitude alternative which won't send any data to server
Objective-C
2
star
16

react-lecture

Slides of a lecture about React.
2
star
17

words

A small web app designed to provide a personal introduction page like about.me with keywords
Python
2
star
18

algo-ds

A collection of advanced algorithms and data structures implemented in Golang
Go
2
star
19

white

A corperative editor base on Nodejs (under developing)
JavaScript
1
star
20

chasezhang.me

bogon - My web page
JavaScript
1
star
21

pulse

Statistical Learning Experiment: Classify ECG data
Python
1
star
22

Qur

a simple fulltext search engine that support both English and Chinese
Python
1
star