Giter Site home page Giter Site logo

carpentries / amy Goto Github PK

View Code? Open in Web Editor NEW
108.0 108.0 72.0 21.41 MB

A web-based workshop administration application built using Django.

Home Page: https://amy.carpentries.org

License: MIT License

Python 89.70% HTML 8.76% CSS 0.17% Makefile 0.05% JavaScript 1.20% Dockerfile 0.05% Shell 0.02% SCSS 0.06%
carpentries django management-system python workshops

amy's People

Contributors

aditnryn avatar askingalot avatar carlosp420 avatar chrismedrela avatar cudevmaxwell avatar darshan95 avatar dependabot[bot] avatar drio avatar elichad avatar erinbecker avatar fmichonneau avatar gvwilson avatar jduckles avatar kamilkulerz avatar lauryndbrown avatar maneesha avatar marwahaha avatar neon-ninja avatar nikhilweee avatar pbanaszkiewicz avatar prerit2010 avatar rbeagrie avatar sburns avatar shapiromatron avatar sheraaronhurt avatar shubhsingh594 avatar slayoo avatar staeff avatar timtomch avatar wking 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  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  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

amy's Issues

Event details page should include links to assessment forms

  1. The event details page should link to pre- and post-assessment forms for learners and the post-assessment form for instructors.
  2. There should be a way to validate those forms' existence from the event details page. This shouldn't happen automatically, but shouldn't require more than a single button click.
  3. Admins should be able to create these forms from the event details page, again with a single button click.
  4. There should be a simple way to send the forms' links to the event's instrutors (and hosts?).

Add search

The app must support search for events, persons, sites, etc., without using a public service such as Google (since we don't want personal identifying information to be made public).

Separate country table

Instead of trusting airport.country and site.country to avoid duplicates, its easier to just have a country table that can be referenced from other tables. This also makes it easier to enforce canonical spelling (e.g. by requiring admin credentials to add new countries).

Event details page should allow validation of Eventbrite link

If Eventbrite is being used to handle registration for an event, the event details page should allow the admin to validate the key. This should not happen automatically (since it takes a while, and some events don't use Eventbrite), but should be a single-button operation.

Forms should also display original data when invalid data entered

When invalid data is entered in a form produced by Django, the form is redisplayed with an error message, but the incorrect data is pre-filled in the offending box rather than the original pre-edit value. (For example, if you try to change the domain name for a site to a domain name that's already in use, the new domain name --- the one already in use --- is displayed instead of the original.) It would be helpful if the form displayed both what the user typed and the original data somehow.

Low priority.

Create checklist for event

The event details page should either:

  • link to the Google Docs spreadsheet being used as a checklist for the event, or
  • host the checklist itself.

In the former case, there should be a single-button way to create the required doc if it doesn't exist, and a single-button way to send the link to the event's instructors and hosts. The latter design would have fewer moving parts, but would mean giving instructors and hosts access to the application.

Allow award of new badges

There should be a way to award someone a badge, either through a stand-alone form or by adding a row to the page showing everyone who has that badge.

Generate YAML showing instructor locations

There should be a simple way to generate the YAML showing the locations of all the airports our instructors are near (for use in the main Software Carpentry website).

Create form for adding new person

The app should allow admins to add a single new person, either by adding a row to the "display all persons" page and editing in place, or via a form, or both.

Event details page should validate repository URL

The event details page should have a button for validating the link to the GitHub repository that hosts the event's website. (Validation shouldn't be automatic, since it can take a while and some workshops may use a different mechanism for their sites, but it should still be possible.) Code needed for validation can be borrowed from the workshop-template repository.

The first step of validating the URL should be to make sure that the repository exists.

The second step is to make sure the index.html page in that repository is properly formatted.

The third step is to make sure that the information in that page is consistent with the values in the database (which the event details page is displaying).

Paginate display of all sites

The display of sites should be broken into pages, and each page should have navigation links to jump to other pages.

Export YAML for badges

There should be a single-page way to generate the YAML describing who has what badge (for use in the main Software Carpentry website).

Add form for bulk addition of new persons

The app should allow admins to upload a CSV file containing names, email addresses, and optionally roles as well. The uploaded data should be validated and displayed for further editing before being added.

  • If roles are not included in the data, everyone should be marked as a learner, but a warning should be raised.
  • If roles are specified, an event must also be specified, and a task should be created for each person showing what role they had in that event.
  • Instead of using a fixed column ordering, the upload form should allow users to specify which columns contain which fields on the fly.

Rename 'site' to 'host'

To avoid confusion, we should rename 'site' (which means "a place that's hosting a workshop") to 'host' (meaning "the hosting organization"), so that we can use the name 'site' to mean "the specific location of a specific workshop".

Create form for adding new site

There needs to be a way to add a new site to the database. This can be a single-page form, or a bit of Javascript to add a new row to the table on the "all sites" page, or both.

Add location information to sites

We indicate a person's (rough) location by listing the airport nearest her. We should also have some way to indicate the location of a host organization for a workshop. However, some sites don't have a location of their own, and others (e.g., the SSI) have multiple locations.

Paginate display of all events

The display of all events should be paginated for easier navigation, and each page should include links to jump to others.

Add list of provisional events to home page

Home page should show events whose dates and instructors still haven't been settled. This will probably require a change or addition to the data model, since workshops_event only lists things with dates.

Spatial Data

The airport model and the list of features related to airports would be easy to implement using geodjango. Will the db this is running on support the spatial data? I typically use postgres with postgis but it makes the development environment setup a lot less fun and could roadblock some submitters.

Add wiki-like text area to site pages

Add a large editable text area to each site's page so that organizers can record free-form notes about contacts, locations, possible dates, special requirements, etc.

Replace Django's auth.User with our workshops.Person?

I expect everyone in the database will want to log in to see their dashboard (listing upcoming workshops that they're on, or workshops in their area that need instructors or helpers), manage their personal information (new email, etc.), or register a new event. We probably don't two person tables with many duplicate entries, so I'd recommend dropping the stock auth.User and substituting workshops.Person.

Display all airports

We show instructors' locations by displaying the airport nearest them. (This is good enough for finding people near workshop locations, without revealing their home address.) The page displaying all the airports should include a map, and allow addition of new airports, both from a database and via manual entry (since smaller airports may not show up in the database).

Allow addition of new skills

Admins should be able to add a new skill to the set of skills instructors are able to teach. There should be an easy way for the admin adding the skill to indicate which of the people already in the database are qualified to teach it.

Paginate display of all persons

The display of all persons in the database should be paginated, and each page should have links to navigate to other pages.

Email list co-management with hosts

This is probably not the issue for here but I don't know where to record it so that it doesn't get lost.
As suggested by @gperu (see excerpt from his email below) it would be great if we could allow the hosts to co-manage the mailing lists for the workshops (just like they can have access to their particular registration on Eventbrite). Not sure if cPanel (I think this is what we use?) allows for that, but if it could be sorted somehow, that would make the admin's life easier. The hosts then add helpers or anyone else they need to the mailing list themselves. Right now is the admins that do that.

Today, when adding a helper to a mailing list (upon request of the host contact) I noted that there is a ‘Delegation’ function (along with ‘Delete’, ‘Change Password’ and ‘Manage’ functions, last cell of each mailing list row). For the first time today I clicked on it and saw who has administrative access to the mailing lists (us) and thought we could give admin access to each host for its relevant list.

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.