mike-marcacci / gandhi Goto Github PK
View Code? Open in Web Editor NEWThe open source, online grant management system.
License: GNU Affero General Public License v3.0
The open source, online grant management system.
License: GNU Affero General Public License v3.0
A sage becomes open or closed depending on whether it (or a different stage) has been submitted.
Once an admin has customized a table, she should be able to export it to a CSV file for use in spreadsheets.
Depends on #36
It would be awesome to have a setup and configuration process the will guide user through first time setup
Users need a top-level section to browse and manage their uploads.
Get angular tests running w/ protractor
When you delete a project, it should be removed from the list immediately
Right now we serve a giant, unminified, 50k-line main.js
file. For now we don't want to worry about async loading, but we could probably get a good boost from minifying this file. Unfortunately, I've been lazy and haven't been using angular's array notation. Thus this includes a small refactor and minification.
RethinkDB 0.14.0 introduced binary support. For the sake of simplicity, easier portability, and because RethinkDB's architecture should be able to handle this efficiently, we should store user uploads in the database.
There is a common use case where applicants will want to invite someone else to their projects by email, but the invited might not yet have an account or might have an account with a different email. We need to add hashed invitation tokens (with a corresponding role) to a project, and provide an easy way for the invited party to claim it.
Dependency of #28
Create a directive/decorator that allows users to choose from previously uploaded files and/or upload new ones.
Should be configurable to support min/max file count, file types, etc.
Having the components PATCH data to /api/projects/:project
is becoming unwieldy from the server-side perspective, and could have unintended consequences should a component accidentally include other project data in its request. Instead, let's consider implementing the following: [PUT]
and [PATCH]
to /api/projects/:project/flow/:stage/
This will be useful for internal reviewers, etc.
User's role is overridden by role on a project. This way, if an internal reviewer is the owner of a project she will only have owner access to her project, but reviewer access to the rest.
API:
App
Due to the fact that gandhi modules are pulled in on-the-fly, their bower dependencies will not have been processed on the first run.
Rethinkdb 1.14 introduces some breaking change in the way document manipulations return date (returnChanges).
Dependency of #47
Auto-load components from a user-supplied directory (prototype included components)
because it's stupid
Project locks are currently calculated client side in portal/projects/index.js. Do this server side and add {lock: -1 | 0 | 1}
Same as #19 but for cycles.
An admin should be able to "log in as" a non-admin user through the admin ui.
This milestone marks the point at which gandhi can be downloaded configured, and implemented.
Should probably use https://github.com/jdorn/json-editor
Right now, there is no good way to track the dependency of a project on a file; therefore, we don't let users remove files they have already uploaded.
Needs:
Allow admin users to select the fields displayed in the admin lists, filter by values, and order by any of the displayed fields. A cycle should export columns which can be used client-side by the data grid.
This one's way overdue and will save me a bunch of time in addition to providing visibility and configurability to the non-technical admins. Each component needs a GUI in the admin instead of requiring the JSON object to be edited manually.
I've already had several requests to have configurable forms alongside component-specific features, such as "start" and "schedule." Whenever it makes sense, each component should accept "form" and "schema" options that render a form with angular-schema-form.
The "form" component obviously already implements this.
Right now all stages are visible for a cycle on the "new" project page. We need act as if we have been assigned the default role on that page.
This would allow us to name conditions and display content accordingly.
Make sure locks are obeying the event conditions
We need an admin GUI for assigning users to a project/cycle.
Process events that have time-based criteria. This will involve some kind of queueing system... even though we're only running a single node, we're using multiple processes via PM2, so we'll need to build this in a distributable way, either using a rethinkdb table as a queue or introducing redis into the stack.
Process events when they're access through the API
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.