Giter Club home page Giter Club logo

parf-edhellen's People

Contributors

galadhremmin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

parf-edhellen's Issues

[Discuss] Avatar titles

The little list of active contributors is currently avatars only. It would be nice with a hover title that includes their nickname also.

[Backend] Improve search result relevance algorithm

The current search relevance algorithm uses 'nearness' to the search term. It's imperfect and it doesn't work particularly well for inflections. Also, multiple language responses are sometimes ordered in a manner that the most relevant results are pushed below the fold.

What can we do to improve the search result relevancy?

Code pointer:

public static function calculateRating(\stdClass $gloss, string $word)

[Backend] Speed-up ingestion

Eldamo ingestion is still very slow. It can take several hours to ingest the full library, and it's mostly due to the way the repository is implemented and its side-effects.

Some random thoughts:

  • Can more be done asynchronously? Currently, indexing and initial ingestion run is done asynchronously, but what else can be moved to asynchronous jobs?
  • I'm questioning the use of the Word entity. Can it be denormalized? What's the benefit of keeping it?
  • Search indexing and keywords are rather redundant. How can they be optimized to further remove complexity?

[Discuss] Implement curated groups for threads (such as "Hot", "New" and "Unanswered")

This would be helpful to further drive engagement on the website. There are currently no groups that are curated by filters, so this would be net new capabilities in addition to the hand-crafted groups we've got today (such as "General conversation" and "Profiles.")

Ideas for useful categories:

  • Hot - threads seeing unusual engagement, perhaps the topic is controversial or of interest to the community.
  • New - new threads for regular viewers who would like to view what was posted since they last visited.
  • Unanswered - threads that haven't seen any engagement at all.

How to Contribute?

Hello @galadhremmin,

I am interested in contributing and am wondering what someone could do to support Parf Edhellen on the development side.

What are the contribution guidelines? Are there any recent bugs? A new feature to develop? Any part of v71 needing attention?

I would suggest adding a license and potentially expanding Parf Edhellen's interface into other languages. I can translate Korean.

Thanks,
Calrethil

Deleting account on website

I was going to delete my account on the website, but apparently this involves making a "DELETE request to /api/v2/account/edit/{ID}".
I don't have the software tools or enough knowledge of HTTP to do this.

My account nickname is 'nameless' and the ID that appears in the URL is '956-tabitha_deeks'.

Revamp the user interface

Despite the recent changes, the user interface is still riddled with issues. One of the chief problems is the incompatibility with iPad and similar phone and tablet devices. Use twitter Bootstrap?

[Discuss] Implement 'mouse over' for elvish words

Is it possible to look up elvish words while hovering over them in Discuss? This would be a cool way to tie translation requests to the glossary. Perhaps we can use Inflection data to distinguish Elvish words.

[Phrases] Fragment generation does not work if no language is set

JavaScript exception is thrown:

Uncaught (in promise) Error: Failed to parse fragments because language undefined does not exist!
    at SentenceActions_GlossActions.<anonymous> (common.js:2)
    at Generator.next (<anonymous>)
    at fulfilled (common.js:2)

Hide or disable the fragment UI if no language has been selected.

[Backend] Public API capability

The current API (v2) is designed to be used with the client application only. Can we design a public API secured by client tokens for downstream applications, like mobile apps and other websites to use?

HTTP 419 Authentication Timeout

Leaving the browser window idle for a period of time, times out the ongoing session. This effectively disables searching, and all other form functions until the page is refreshed.

image

Investigate api-noresponse errors

What triggers these errors? How can they be mitigated?

An example from the error log:

{
  "apiMethod": "book/translate",
  "request": {},
  "error": "API call received no response.",
  "config": {
    "transformRequest": {},
    "transformResponse": {},
    "timeout": 1,
    "xsrfCookieName": "XSRF-TOKEN",
    "xsrfHeaderName": "X-XSRF-TOKEN",
    "maxContentLength": -1,
    "headers": {
      "Accept": "application/json",
      "Content-Type": "application/json;charset=utf-8",
      "X-Requested-With": "XMLHttpRequest",
      "X-XSRF-TOKEN": "<REDACTED>"
    },
    "method": "post",
    "url": "/api/v2/book/translate",
    "data": "{\"word\":\"black,_dark\",\"inflections\":true,\"include_old\":true}",
    "axios-retry": {
      "retryCount": 3,
      "lastRequestTime": 1527487274120
    }
  }
}

[Sage] Hyphen is included in letter count

Many verbs end with - and the same character is also used between nouns. It is removed from letter clusters, so the removal should also reflect into the letter count.

[Backend] Enable server-side rendering 🔥

The current React application needs 1 to 5 seconds to render, depending on the complexity and size of the page. The client application is designed to only bootstrap common components (such as the search field and Bootstrap components). It thereafter loads whatever else needs to be injected to the page at runtime based on the data-inject-module HTML element attribute.

With this task, I'd like to introduce server side rendering of initial components. The solution should be designed so that it can be extended to injected components in the future as well. As we're (unfortunately?) using the PHP stack, we'll need v8js and phpv8. I haven't been able to get it to work with PHP 7.X so we'll also have to upgrade the server side code to PHP 8.

[Discuss] Private messaging

There currently isn't a way for members to send private messages to one another on Parf Edhellen. All conversations are public. This sometimes leads to members leaving rather random-looking comments or questions on one another's profiles. A private messaging capability would make it easier for users to interact.

Important components:

  • A 'message center' of sorts where you can see your ongoing conversations.
  • Notifications when you've received a new message. Perhaps React application polling or similar?
  • E-mail notifications that you've received a message.

THANK YOU SO MUCH and a request for help...

First of all, thank you for an incredible resource. I'm part of a book club that includes a first-time reader of the Silmarillion, and being able to use the dictionary here is greatly enriching our discussions!

That said, I noticed there are what appear to be API routes - is there an open public API exposed from the site? I'm not well-versed in PHP so I can't fully grok how it might work but I'd love to learn & build alongside if possible! I was thinking about using Twilio messaging to have a phone number - you send a word via SMS, it responds with the definition of the word.

Provide a database dump for download

First of all, thanks a lot for your work on this, elfdict is an awesome resource!

It would be great to have a full dump of the database behind the site available. Is there any particular reason for why this is currently not the case?

HSD update + database question

Greetings,

  1. On https://www.elfdict.com/about, the following statement appears about the HSD :

"Hiswelókë, which haven't been updated for years, is nonetheless still excellent, and one of the prominent sources to date on the Sindarin language."

(From a (very) quick glance at the source code, it might be in src/resources/views/about/index.blade.php)

Thanks for the "still excellent" wording, despite the lack of public updates until recently ;) - But regarding such updates, you may want to remove this whole statement:

The former HSD resumed and is now called "A Sindarin and Noldorin dictionary, compiled, edited and annotated by The Sindarin Dictionary Project". It's no longer referred as "Hiswelóke's", as the website was closed and its assets transferred (the articles went to Tolkiendil, the dictionary is expected to stay on JRRVF, in addition to the GitHub Page mentioned below).

Latest sources are on https://github.com/Omikhleia/sindict
A current "browsable" version is on GitHub Pages https://omikhleia.github.io/sindict/ - and (as of now) a slightly less current version is at the original address on www.jrrvf.com (for now, but it's planned to have the same version on both eventually, when some technical tasks and branch merging are completed). There is still lots do to repair that old beast and put it in a more decent state, but anyhow it no longer counts as not having been updated for years...

  1. For my information, where/how can one download a copy of the Elfdict database?
    I am not interested to set-up a running Parf Edhellen, but possibly just in exploring the database for the purpose of querying, analysis/comparisons and cross-checks.

Regards.

Fix blockquote breakage in the dictionary view

Blockquotes gets split up into multiple columns in Firefox. This does not look good. At all. Fix it with the following CSS on the blockquote element within the dictionary context:

    page-break-inside: avoid;           /* Theoretically FF 20+ */
    break-inside: avoid-column;         /* Chrome, Safari, IE 11 */
    display:table;                      /* Actually FF 20+ */

[Backend][UI] Build a dictionary auditing tool

There are thousands of entries in the dictionary today, and it's frankly very hard for administrators to audit the records using current tooling. With this proposal, I'm thinking administrators will gain access to a tool that will empower them to make changes to the glossary without going through the contribution process. It'll also happen at bulk, perhaps via some form of grid (similar to the Phrases).

[Backend] Implement fine-grained access control

Currently, there are only three supported roles: Anonymous, User and Administrators. Administrators have access to everything whereas Users have access to logged-in features related to their user account.

By adding fine grained access control, we can create intermediary roles to empower the creation of community. For example, a select cohort of users can have contribution review permissions. Or perhaps auditors can ensure that the quality of the dictionary is top-notch.

Inflections `order` validation fix

Inflections cannot currently be effectively saved because order is a required field. It really isn't, so change the validation rule or make sure that the reducer manages the order field.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.