https://github.com/futurulus/wiinaq
A Kodiak Alutiiq dictionary web application with automatically generated ending tables and souped-up search capabilities
https://github.com/futurulus/wiinaq
Last synced: 4 months ago
JSON representation
A Kodiak Alutiiq dictionary web application with automatically generated ending tables and souped-up search capabilities
- Host: GitHub
- URL: https://github.com/futurulus/wiinaq
- Owner: futurulus
- License: gpl-3.0
- Created: 2016-12-22T05:26:58.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-04-21T22:37:35.000Z (almost 3 years ago)
- Last Synced: 2025-01-18T11:11:54.241Z (about 1 year ago)
- Language: Python
- Homepage: https://www.wiinaq.org/
- Size: 541 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- low-resource-languages - wiinaq - Word Wiinaq is a [Kodiak Alutiiq](http://www.alutiiqlanguage.org/) dictionary web application with automatically generated ending tables and souped-up search capabilities. It is written in Python using Django. (Alutiiq / Utilities)
README
Overview
========
Word Wiinaq is a [Kodiak Alutiiq](http://www.alutiiqlanguage.org/) dictionary
web application with automatically generated ending tables and souped-up search
capabilities.
It is written in Python using Django.
Installation
============
Downloading and running locally
-------------------------------
If you haven't already, you'll want to start by installing [Python
2.7](https://www.python.org/downloads/) and
[pip](https://pypi.python.org/pypi/pip). Then install Django:
pip install django django-nose
Find a nice spot for the repo and clone it:
git clone https://github.com/futurulus/wiinaq.git
cd wiinaq
Set up the database:
./manage.py migrate
./manage.py loaddata sources words_free
Finally, start the server:
./server
Once you do this, your browser should be able to load the site locally at
http://localhost:8000/.
If you'd like to take a look at how the admin interface works, make yourself a
superuser account:
./manage.py createsuperuser
Then make sure the server is running, point your browser to
http://localhost:8000/admin/, and enter the username and password you created
in the previous command.
Running on Heroku
-----------------
Word Wiinaq is configured to run out of the box on Heroku. You'll
need to create an account at http://heroku.com/, initialize a Python app,
and install the [Heroku CLI](https://devcenter.heroku.com/articles/heroku-command-line).
Then issue these commands from your git repository:
heroku login
heroku git:remote -a
heroku config:set ON_HEROKU=true \
DJANGO_ALLOWED_HOSTS=.herokuapp.com \
DJANGO_SECRET_KEY=$(./secret_key)
git push heroku master
The environment variable `ON_HEROKU` changes a few things to make the app play
well with Heroku. The other two are security settings.
A link to connect to the running website will show up near the end of the output
from `git push`. However, the website won't quite work yet—first
you need to run the same commands as above but on the Heroku box:
heroku run ./manage.py migrate
heroku run ./manage.py loaddata sources words_free
heroku run ./manage.py createsuperuser
Finally, start up a dyno for hosting the app:
heroku ps:scale web=1
If you have additional dictionary files to load, you'll need to start a shell on
Heroku and pull them in from some other Internet-accessible location, since Heroku
disallows incoming scp connections:
heroku run bash
$ scp some_online_location:new_words.csv dict_sources/
$ ./reload_data
Setting up Dropbox backup
-------------------------
If you only want to back up the database from your local installation, you can
periodically run
./backup
The first time you run the script, you'll be prompted to set up your
information on the Dropbox Apps website.
To configure this as a recurring job in Heroku, run the setup script (from your
local installation):
./heroku_setup_dropbox
Then create a [Scheduler task](https://devcenter.heroku.com/articles/scheduler)
to run `./backup` every so often.
Bulk editing/adding
===================
The admin interface allows you to easily edit individual entries, but for
adding or changing large numbers of entries in bulk, it can be inconvenient.
You can look through and edit a CSV dump of the database by running
./export_csv > data_dump.csv
`data_dump.csv` can be called anything you'd like, and placed anywhere. The
columns correpond to fields shown in the `Chunk` admin interface (the exact
order is listed in `dictionary/json_to_csv.py`).
Once you've made your edits, replace the contents of the database with the new
version:
./import_csv data_dump.csv
You'll be prompted to confirm this potentially destructive operation. The
script will automatically back up the database to a file in
`dictionary/fixtures` first in case something goes wrong.
License
=======
See the file `LICENSE` for the full text of the GNU General Public License.
Copyright (C) 2015-2016 William Monroe
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see .