All Projects → galadhremmin → Parf-Edhellen

galadhremmin / Parf-Edhellen

Licence: other
A dictionary for Tolkien's languages

Programming Languages

PHP
23972 projects - #3 most used programming language
typescript
32286 projects
Blade
752 projects

Projects that are alternatives of or similar to Parf-Edhellen

Manji
Manji is a mobile application built to help people learning Japanese learn about Kanji.
Stars: ✭ 142 (+149.12%)
Mutual labels:  dictionary
new-word-tab
A browser extension to learn a new word per new tab
Stars: ✭ 30 (-47.37%)
Mutual labels:  dictionary
jiten
jiten - japanese android/cli/web dictionary based on jmdict/kanjidic — 日本語 辞典 和英辞典 漢英字典 和独辞典 和蘭辞典
Stars: ✭ 64 (+12.28%)
Mutual labels:  dictionary
js-mdict
*.mdx/*.mdd interpreter js implements
Stars: ✭ 91 (+59.65%)
Mutual labels:  dictionary
wikdict-gen
Generation of bilingual dictionaries from Wiktionary/dbnary data for the WikDict project
Stars: ✭ 32 (-43.86%)
Mutual labels:  dictionary
vocabulary-titan
Chatbot for searching vocabulary on mainstream dictionaries
Stars: ✭ 70 (+22.81%)
Mutual labels:  dictionary
nihongo
Japanese Dictionary
Stars: ✭ 77 (+35.09%)
Mutual labels:  dictionary
waylan android
A dictionary concept for Android ~ Making words and their meanings available through a natural and beautiful experience
Stars: ✭ 13 (-77.19%)
Mutual labels:  dictionary
Diccionario-JavaScript
project-dictionary.gitbooks.io/diccionario-javascript/content/
Stars: ✭ 13 (-77.19%)
Mutual labels:  dictionary
myRime
我的 Rime 配置,适用于朙月拼音/小鹤双拼/小狼毫 /ibus
Stars: ✭ 46 (-19.3%)
Mutual labels:  dictionary
dictionary
Project that tries to help you learn English.📕
Stars: ✭ 28 (-50.88%)
Mutual labels:  dictionary
programminginpython.com
This repo consists code of all the programs discussed at programminginpython.com website
Stars: ✭ 60 (+5.26%)
Mutual labels:  dictionary
mw-thesaurus.el
Merriam-Webster Thesaurus in Emacs
Stars: ✭ 84 (+47.37%)
Mutual labels:  dictionary
glaemscribe
Glaemscribe, the tolkienian languages/writings transcription engine.
Stars: ✭ 29 (-49.12%)
Mutual labels:  tolkien
moonstar
MoonStar Türkçe Dil Kılavuzu
Stars: ✭ 11 (-80.7%)
Mutual labels:  dictionary
French-Dictionary
CSV files containing all french adjectives, adverbs, conjunctions, determiners, nouns, prepositions, pronouns, verbs and their gender, types and conjugations
Stars: ✭ 74 (+29.82%)
Mutual labels:  dictionary
Jotoba
A free online, self-hostable, multilang Japanese dictionary.
Stars: ✭ 87 (+52.63%)
Mutual labels:  dictionary
google-dictionary
An android library that provides easy access to meanings of any word, phrase, or slang via Google, within any application
Stars: ✭ 46 (-19.3%)
Mutual labels:  dictionary
condict
Dictionary software for constructed languages.
Stars: ✭ 21 (-63.16%)
Mutual labels:  dictionary
assoc-list
Dictionary with custom keys implemented using association lists
Stars: ✭ 30 (-47.37%)
Mutual labels:  dictionary

Parf Edhellen

This is the source code for elfdict.com, a non-profit, free dictionary online for Tolkien's languages. Maintained by Leonard. Follow me on twitter at @parmaeldo.

Service configuration

Ensure that the following dependencies are installed:

php7.4 php7.4-cli php7.4-common php7.4-curl php7.4-gd php7.4-intl php7.4-json php7.4-mbstring php7.4-mysql php7.4-readline php7.4-xml php7.4-zip

Configure the database using the model files. Execute the script files in ascending order, starting with schema.sql. You can apply the migrations once you've got Laravel configured. To configure Laravel, run the following commands sequentially:

gh repo clone galadhremmin/Parf-Edhellen
cd Parf-Edhellen/src
npm install
mkdir bootstrap/cache
chmod 755 bootstrap/cache
mkdir -p storage/framework/{sessions,views,cache}
chmod -R 775 storage/framework
cp .env.example .env
vim .env # configure appropriately
composer install
php artisan key:generate
php artisan storage:link

Always make sure to follow Laravel's guidelines and best practices before moving the app into production.

Development

Run Parf Edhellen locally by executing php artisan serve. You need to compile the TypeScript application by running npm run watch.

Make sure to run Node v16. Parf Edhellen isn't currently compatible with Node 17+.

Want to help out?

If you are interested in helping out, please get in touch with galadhremmin. You can also help us by donating. Please visit elfdict.com for more information.

Documentation

Audit trail

The audit trail consists of activities. Activities are specified as constants within the App\Models\AuditTrail class, and utilised throughout the application. The App\Repositories\AuditTrailRepository contains the necessary functionality for converting activities (which are integers) into human-readable strings.

Note: audit trail model objects with the property is_admin set to 1 (= true) can only be seen by administrators.

Cookies

The following cookie names are used by the application:

Cookie name Description
ed-usermode Administrators can give a cookie with this name the value incognito to hide their activity.

System errors

The schema system_errors contain information about client-side as well as server-side exceptions. Common exceptions (404 Page not found, 401 Unauthorized, etc.) are separated from the rest by the is_common column.

Uncaught client-side exceptions are caught by the onerror event, passed to a web API, and logged. Refer to the API documentation for more information.

Coding style

  • \t must be replaced with four spaces for JavaScript and PHP, else two spaces.

  • PHP is written in camelCase with exception for classes and interfaces, which are capitalized.

  • SQL is written in upper case.

  • Always a single space between statements, brackets and paranthesis.

  • Curly brackets are positioned on a new line for methods, interfaces and classes, else the first bracket is positioned on the same line as the clause. Example:

    class A
    {
        public function sayHello() 
        {
            if (empty($this->_name)) {
                echo 'Hello!';
            } else {
                echo 'Hello, '.$this->_name;
            }
        }
    }
    
  • Conditional operators are restricted to one line, unless the resulting operation is long enough to warrant a split, at which point the first new line is positioned before the question mark, and the second one new line before the colon. Example:

    {
        $fruitName = $fruit instanceof Apple ? 'apple' : 'fruit';
        $customer = $fruit instanceof Apple
            ? FruitVendor::sell($fruit, $appleAdvert, true) 
            : FruitVendor::discard($fruit);
    }
    

The source code is provided as-is. The code does not, in any shape or form, reflect best coding practices; it's a non-profit hobby project of mine.

License

ElfDict (Parf Edhellen; elfdict.com) is licensed in accordance with AGPL.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].