Comments (4)
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.
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.
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.
Updated initial message part about the error messages with an example of real life issue.
from coral.
Related Issues (20)
- Unable to add a "category" to the module "Management" in CORAL version 2020.09 HOT 1
- How do I enable the Dashboard on the Resources Module? HOT 2
- Does SUSHI connect on Localhost/Local IP? HOT 1
- Emails are not receiving HOT 2
- Next Run Date on SUSHI Services HOT 4
- Problem in Usage Statistics Module HOT 3
- SSL Certificate Issue in Usage SUSHI test on Ubuntu
- Permit issues for resource contacts
- Feature Request: Placing import buttons at the top of the Usage Statistics file review screen HOT 4
- Feature request: Edit order acquisition type prompts workflow restart
- Deleted a step from a workflow for a resource, entire tabs now blank
- File Import option in Resource module in CORAL 2020.09 version not working properly
- Text not saving in fields
- Add A higher resolution FaviCon for use in shortcuts/bookmarks HOT 1
- Security contact
- SUSHI Registry Link Invalid HOT 1
- Error with datepicker for at least one month HOT 4
- Undisclosed File Size Limitation for Resource Attachments HOT 1
- Mysql Version HOT 3
- Unable to edit or add new notes in eRM HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from coral.