Giter Club home page Giter Club logo

Comments (4)

jsavell avatar jsavell commented on August 12, 2024 2

The Javascript needs to be refactored.

  • There's been a tendency to copy and paste, rather than abstract, which means what should be trivial changes end up being hours spent making sure the simple change is implemented in many, nearly identical places.
  • Because of the tangled JS, we're stuck using a very old version of jQuery, which lacks many new features, performance enhancements, and security fixes.

Improve Coral's Modularity

  • I think this is well known and being addressed, but the lack of shared code across modules means innovations in one module often don't make it to others, meaning we're actually dealing with several codebases.
  • Coral is flexible in its ability to function in combination with different modules, but all code that hinges on expressing a given configuration should be in as few places as possible, preferably one.
  • In the resources module, for example, the module logic is peppered throughout class methods and controller files. Right now, a developer just has to learn through trial and error when they need to account for the fact that an organization could be native, or from the organization module.

from coral.

jsavell avatar jsavell commented on August 12, 2024 2

To supplement the interface point, here's an example of a feature we're working on at TAMU to import record data from an in house API:
TAMULib@2449358

Because there's a well defined interface for what an Organization is, the controlling code doesn't need to know what type of Organization implementations it's working with. It just knows getTitleText() will be callable. It doesn't care if that method is backed by a MYSQL query or an API request.

from coral.

jsavell avatar jsavell commented on August 12, 2024 1

Adopt a true MVC pattern.

Right now, our data classes are sprinkled with view and business logic and our controllers and views are merged into one entity. This greatly complicates modifying code or adding new features.

We should work toward using interfaces to define contracts for interacting with our data models.

In other words, code that works with an Organization implementation shouldn't have to know or care if it's representing a org module Organization, a resources module Organization, or importable organization data from a 3rd party API.

Our CSS needs attention.

It's ad hoc, and not easily reusable or extensible. Part of this is due to the over-reliance on IDs serving as jquery hooks (which also tightly couples our HTML to our javascript to our CSS, making it difficult to improve any of the three). Another part is the abuse of the !important declaration, which breaks the C in CSS and is difficult to identify and fix.

from coral.

tuxayo avatar tuxayo commented on August 12, 2024

Updated initial message part about the error messages with an example of real life issue.

from coral.

Related Issues (20)

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.