codebndr / eratosthenes Goto Github PK
View Code? Open in Web Editor NEWLibrary management system used by codebender
Library management system used by codebender
'Libraries are usually found on the internet in github repos or zip files, and we have some ways to import them, but we can do better. A zip export wouldn't hurt either.'
Details of our workplan and milestones can be found here.
See schema described in issue #21.
To do:
These are passed to later issues. This issue will focus on new file structure.
id, version_id, name, path, boards
Unique index on: version_id
Renamed from Example to CodeExample.
Create 6 new fixture files in order to initialize the database for set up and test.
A delete library feature should be added, which would handle the deletion of the library metadata and examples metadata from the database, as well as the actual files deletion from the filesystem.
Regarding the original schema (#21), here are two issues I found today:
1.Unique index on folder_name of Version (#29)
Currently we are using relative path, so in each version we only store the folder name like "1.0.0" or "1.5.2". But this may violate the unique constraint.
Possible solution: We either store the full path, or we remove the index.
2.Unique index of version_id in LibraryExample (#31)
What if there may be two or more example for this version? The unique constraint may be broken then.
Possible solution: we remove the index, or we set the constraint to be {id, version_id}
Currently I resolved the issue 1 by removing the index; resolved issue 2 by apply unique index on {id, version_id}. (see f66431b)
Currently there are far too many magic strings, and the system is prone to silent failure from typo, change, etc.
One suggestion is to make constant package files. For example, a library that needs Form
related constants will need to have use FormConstants
and use getter like getDefaultHeader()
to use a constant. This way, changing the value will not break anything, and some mistakes like typo will be caught by the compiler.
'Arduino IDE has a new feature that parses a special json hosted someplace on the internet to import libraries. In most cases we already have those libraries, but figuring how this works and incorporating it in eratosthenes would be welcome too.'
install.sh places the app in a directory called /opt/codbender/eratosthenes/Symfony/web , but it creates an apache configuration with alias and directory pointing to /opt/codebender/codebender-library-manager/Symfony/web
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.