Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhance Amy, a Django application for managing workshops #6

Closed
gvwilson opened this issue Mar 4, 2015 · 15 comments
Closed

Enhance Amy, a Django application for managing workshops #6

gvwilson opened this issue Mar 4, 2015 · 15 comments

Comments

@gvwilson
Copy link
Contributor

gvwilson commented Mar 4, 2015

Amy is a Django application for managing workshops like those run by Software Carpentry. Basic functionality is in place, but there are many outstanding feature requests, and it could use a lot more testing.

Amy is a straightforward Django application; experience with that framework (and with Python) is required. Some of the features we would like to add require Javascript, so familiarity with JQuery and other frameworks is an asset.

Amy will manage personal identifying information, so applicants should also have a basic understanding of security engineering. Experience with deploying and maintaining applications is also an asset.

@aa-dit-yuh
Copy link
Contributor

Hi @gvwilson ,

I am Aditya, a sophomore pursuing my B.Tech in Electronics and Electrical Communication engineering at IIT Kharagpur.
Congratulation for being selected as a mentor organisation for GSOC'15. I am interested to pursue GSOC this summer and work for this project.
My previous experience in Django involves building an online judge and a registration portal in Django for a student chapter I am part of.
I am facing difficulty setting up the local database for Amy. I have opened an issue here.
Can you please help me to get started.

@darshan95
Copy link
Contributor

Hi @gvwilson,

I am Darshan, a computer science undergraduate from India. I am pursuing my Bachelors of Technology in Computer Science and Engineering from IIIT Hyderabad.

I want to express my interest in working on this idea. I think I have the required skillls (Django, Jquery, python) and experience that is needed for this project. I have previously made some applications in Django and have a good experience in it.

I have set up 'Amy' in my system.
I had faced problems while creating local database : no arguments to super(). The error resolved when 'Person' and 'self' were added as arguments to super().
When tried to run the server got the error : Module '"django.contrib.auth.middleware" does not define a "SessionAuthenticationMiddleware" attribute/class'. In order to resolve it, I had to comment out 'django.contrib.auth.middleware.SessionAuthenticationMiddleware' in 'amy/settings.py'

If possible, I would like to discuss more specifically about the project, so that I can build a clear timeline for the project for the purpose of my proposal.

@rgaiacs
Copy link
Contributor

rgaiacs commented Mar 8, 2015

@darshan95 You need to use Python3, see carpentries/amy#219.

@darshan95
Copy link
Contributor

@r-gaia-cs thanks for pointing out, but the application is also being deployed using python2.7 with the mentioned changes.

@wking
Copy link
Member

wking commented Mar 9, 2015

On Sun, Mar 08, 2015 at 08:19:22AM -0700, Darshan Agarwal wrote:

… the application is being deployed using python2.7 with the
mentioned changes.

We dropped Python 2 support because handling Unicode on Python 2 is a
pain in the neck (see carpentries/amy#176). There was a cost to
mainting the Python 2 compatibility and no benefits, so we dropped it
to focus solely on Python 3. I'd recommend just using Python 3
instead of maintaining your own fork for Python 2 compatibility ;).

@darshan95
Copy link
Contributor

@r-gaia-cs, @wking thanks for the reply and will surely use Python3 in the future. May I know what should be my next step for the task after setting up 'Amy'

@wking
Copy link
Member

wking commented Mar 9, 2015

On Mon, Mar 09, 2015 at 02:23:18AM -0700, Darshan Agarwal wrote:

May I know what should be my next step for the task after setting up
'Amy'

I'm not sure what @gvwilson had in mind when he created this issue,
but “there are many outstanding feature requests, and it could use a
lot more testing” sounds like “look through out non-deferred issues
1 and submit pull requests for whatever looks appealing”. Note that
a number of those issues already have outstanding pull requests
(e.g. carpentries/amy#221 for carpentries/amy#194), so read through
the comments on an issue to see what's in the works before you dive
in.

@gvwilson, do you have more targeted advice? I see that I'm listed as
a mentor 2, and I'm happy to review and advise amy contributors, but
I'm not clear on the indended scope of an amy GSoC project. I don't
want to shortchange amy by going too slowly, and I don't want to
shortchange a GSoC student by going too fast…

@gvwilson
Copy link
Contributor Author

gvwilson commented Mar 9, 2015 via email

@pbanaszkiewicz
Copy link
Collaborator

Hi Greg :)

A good proposal needs solid timeline, which needs some ideas what to do with Amy.

So… what does Amy need? Except for "to finally get released & hosted". Is there something huge enough to take a month or so to finish?

Cheers,
Piotr

@gvwilson
Copy link
Contributor Author

  • Integration with external authentication services (e.g., GitHub)
  • Reports (graphs showing how many people we've taught in the last
    month/year/whatever, histogram of how often instructors have taught, etc.)
  • Integration with Mailman (should be able to see which lists a person
    is signed up to / which people are signed up to lists - even larger
    would be allowing admins to create a Mailman mailing list per workshop
    with the instructors/helpers/hosts on it)
  • Integration with Eventbrite (does registration exist, is it up and
    running, etc.)
  • usability testing (watching admins use it and think of things to
    simplify/features to add or remove)

How's that for a start?

@wking
Copy link
Member

wking commented Mar 12, 2015

On Thu, Mar 12, 2015 at 02:20:55PM -0700, Greg Wilson wrote:

  • usability testing (watching admins use it and think of things to
    simplify/features to add or remove)

This is something that's hard to check off ;). The other goals look
good to me, because they have a completion condition, would be useful
to have, but are not so critical that we can't release before we have
them. I'd explicitly list the reports to be implemented in a proposal
along these lines. If there's extra time and you fill in a few more
reports, that's great, but I don't think the official goals should be
open-ended.

@pbanaszkiewicz
Copy link
Collaborator

Hi @gvwilson and @wking,

I have some questions below.

  • Integration with external authentication services (e.g., GitHub)

Is Amy still only for Giacomo/Carliss? Or is this step an enhancement that will eventually open Amy to instructors and learners?

  • Reports (graphs showing how many people we've taught in the last month/year/whatever, histogram of how often instructors have taught, etc.)

You know best what statistics we want to have:

  1. Number of people taught
  2. Some sort of indicator of how often instructors teach
  3. Number of instructors

Can't think of anything more. Any ideas what would be nice to have?

  • Integration with Mailman (should be able to see which lists a person is signed up to / which people are signed up to lists - even larger would be allowing admins to create a Mailman mailing list per workshop with the instructors/helpers/hosts on it)

I remember we talked about this. It involves running shell commands manually, because older versions of Mailman don't have anything like remote API.

So features we're looking for:

  • per-person lists membership
  • list of lists (*)
  • list members (*)
  • lists per workshop
  • creating lists for the workshop (auto-adding hosts, instructors, helpers)

(*) marks potential duplication of Mailman features. Anything more we'd like to have?

  • Integration with Eventbrite (does registration exist, is it up and running, etc.)

I think this might be the most straightforward of all.

BTW. Should we integrate questionnaire sending (pre-workshop evaluation, post-workshop evaluation) via Eventbrite?

  • usability testing (watching admins use it and think of things to simplify/features to add or remove)

I might be able to watch Giacomo use Amy because he's in UK ;)

How's that for a start?

Yeah these goals look like fun :)

If there's extra time and you fill in a few more reports, that's great, but I don't think the official goals should be open-ended.

I need some more details regarding reports (mostly ideas for them, see above) so that I can prepare a solid proposal.

@wking
Copy link
Member

wking commented Mar 14, 2015

On Sat, Mar 14, 2015 at 04:34:34PM -0700, Piotr Banaszkiewicz wrote:

  • Integration with external authentication services (e.g., GitHub)

Is Amy still only for Giacomo/Carliss? Or is this step an
enhancement that will eventually open Amy to instructors and
learners?

My current understanding is that yes, that's the main draw, but we're
waiting until the admin-side stuff is done 1.

Can't think of anything more. Any ideas what would be nice to have?

Maybe sites that haven't had an event in a while? Hosts that haven't
hosted in while (once we distinguish sites from hosts, see
carpentries/amy#120).

Also, it would be nice to tie in some of our new business logic:

  • Fee calculation 2
  • Tracking Partner/Affiliate/Sponsor contributions for
    coordinating/hosting workshops and associated instructor training
    courses 3.

I remember we talked about this. It involves running shell commands
manually, because older versions of Mailman don't have anything like
remote API.

Can we install a newer version of Mailman? I think it would be easier
to drive via an API (e.g. you wouldn't need amy and Mailman on the
same host), and we'll presumably be upgrading at some point anyway (to
stay on a maintained version).

BTW. Should we integrate questionnaire sending (pre-workshop
evaluation, post-workshop evaluation) via Eventbrite?

Does Eventbrite do questionnaires? With whatever our required level
of privacy is? If so, that, plus general access to amy, would allow
us to require them for self-hosted workshops (see
swcarpentry/DEPRECATED-site#864).

@gvwilson
Copy link
Contributor Author

Hi,

  1. I don't expect we will open this up to instructors and learners any time soon, but we do hope to have more admins organizing workshops.
  2. Some of the queries we have now are in Makefile under make report:
  • workshop enrolment per workshop
  • cumulative number of workshops to date
  • total number of workshops taught by each instructor
  • list of instructors who have never taught
  • number of instructor trainees per cohort

Some other things that we calculate occasionally are:

  • who became an instructor in the last N months?
  • which workshops do we not have enrolment figures for?
  1. Integration with Mailman can wait until they have a proper API - that's supposed to be coming Real Soon. We shouldn't implement anything sophisticated - this one's really just about saving admins from switching to/logging in to another application.
  2. Ditto for Eventbrite.

Thanks,
@gvwilson

@rgaiacs
Copy link
Contributor

rgaiacs commented Mar 28, 2015

I'm closing this issue since student application period is over.

@rgaiacs rgaiacs closed this as completed Mar 28, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants