Discussion:
Advice on choosing Django modules?
Dean Karres
2018-11-23 21:46:40 UTC
Permalink
Hi,

I have been teaching myself python at the same time I am starting with
Django. I have made a great deal of progress with both but am at a place
where I could really use some advice. I am trying to build a specialized
"Membership" application for a US based non-profit. The non-profit works
with adults, children and families -- sometimes rather complex family
structures. A Membership Application for this entity needs to handle some
peculiar situations.

I have looked at some of the Django e-commerce plugins but there are a lot
of them and some seem to take a lot of configuration. I get lost reading
the setup/config docs while trying to see how a particular module can be
configured for my needs. This is where I need advice.

Because this org does not have money for hardware they will use Squareup
for on-site dues, fees and product sales. Squareup and/or Stripe for
on-line purchases.

The on-line part of the application needs to:

@ allow "Adults", 18 years old or older, to sign-up/register (take profile
data). Let's call this Adult with a login account an "Account Holder".
@ allow Account Holders to:
* purchase a personal "Adult" membership (one-time or recurring /
subscription) or signal that they will pay in person via with cash or
check.
* purchase one or more memberships for other related Adults or Youth
(under 18 years old). The "other" membership purchases must take
"non-login" profile data.
* when creating additional memberships be aware of special billing
rates; for example: multiple memberships "belonging" to the Account
Holder are considered to be a "Family Membership". No Family pays
more than a fixed amount per month. Also, if multiple Youth
memberships are created then there is special pricing: the first Youth
is at the regular Youth rate and each additional Youth is at a reduced
rate -- keeping in mind that maximum Family Membership rate.
* cancel Membership(s).
* modify Membership Profile data and payment methods for all Members
belonging to the Account Holder.
@ more than one Account Holder may have financial responsibility for a
"Family Membership". This can get complex. The non-profit does not
currently have any complex Family payment situations but in the past there
have been situations where a non-"member" parent/guardian will pay for
one or more members one month and one or more other parent/guardians
will pay for some sub-set of members. Sometimes these non-members are
also non-Account-Holders. All of the payments need to be tracked and
applied to the correct member(s).
@ the "Profile Data" associated with each member needs to include the
obvious: name, birth-date, address, phone number(s) for contact,
SMS-allowed number(s), emergency contact number(s), email address(es).
Emergency contact information, especially for Youth, might need multiple
contacts and an order of contact.
@ the non-profit is educational in nature. The member information needs to
carry information about test dates, pass/fail status, current level, class
attendance dates. This information should be viewable by the Account
Holder but can oly be added/modified by an Teachers.
@ Teachers is a group that is made of select Account Holders who are
Members. Membership in the Teachers group is managed by Administrators.
@ Administrators is a group that is made of select Teachers.
@ report generation features should be available to Administrators and
offer
things like:
* list of login accounts with no members with options to delete, revoke,
lock the login accounts.
* list of members with filters for just about anything that can appear in
the profile data.
* billing related reports: who paid, how much, how, when, in what time
period, etc
@ Teachers need tools to, at least, take attendance.
@ Teachers and Administrators need the ability to allow new Account Holders
to sign-up on-sitre; and, to allow Account Holders to add / modify
account / member information. Teachers may or may not need the ability to
"Close" Account Holder accounts, that's still being debated. They probably
should be able to Pause accounts with comments that Administrators review.

That is not an exhaustive list but this is probably too long already.

In a nutshell, I need a membership, billing, student tracking app (or
cooperating apps). The advice I seek is: which existing Django based
modules do what I want or come close?

Thanks
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+***@googlegroups.com.
To post to this group, send email to django-***@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/0fa5f920-db2f-494b-a398-6329588abf63%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Jason
2018-11-24 02:59:37 UTC
Permalink
What I would advise you do is learn python first before getting into
django. reason being, you're requring yourself to learn a language *and* a
framework simulataneously. and the conventions in django don't always
extrapolate and apply to python in general. You can do it (I did, coming
to python/django from Java/spring/gwt) but it did hinder my knowledge
acquision significantly until I got over the hump
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+***@googlegroups.com.
To post to this group, send email to django-***@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/4878e6e1-734d-4298-93f9-fc1f0534ee31%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Mike Dewhirst
2018-11-25 08:11:19 UTC
Permalink
Dean

You have an interesting scenario.

For me, the first task would be figuring out the best use of my time.
I'm perfectly capable of semi-permanent research and indecision followed
by throwing up my hands in frustration and rolling my own.

I think if I was in your shoes with your apparent experience I would
search out the most simple membership system I could find and try to
make that work.

That process would teach me in a very short time exactly what I have to
look for further afield or persuade me to think in a different direction.

I suggest "simple" because if I chose to fork a simple system it would
be easier than trying to take a more complex package in my chosen direction.

Simple is better than complex.

The relationships you list below are all people who each can have none,
one or more links to any other person and each can be a member of none,
one or more groups. That part does sound complex but it isn't really
when you have a tool like Django.

The e-Commerce part of your project does require bullet-proof software
and payment gateways so I would focus on that first. Again I would look
for the simplest. It is easier to secure something simple.

By the time I had found the packages with the fewest models, fewest
lines of code and somewhat understandable after poking around under the
covers I would be somewhat better educated and therefore better placed
to make strategic decisions.

Good luck

Mike
Post by Dean Karres
Hi,
I have been teaching myself python at the same time I am starting with
Django.  I have made a great deal of progress with both but am at a
place where I could really use some advice.  I am trying to build a
specialized "Membership" application for a US based non-profit.  The
non-profit works with adults, children and families -- sometimes
rather complex family structures.  A Membership Application for this
entity needs to handle some peculiar situations.
I have looked at some of the Django e-commerce plugins but there are a
lot of them and some seem to take a lot of configuration.  I get lost
reading the setup/config docs while trying to see how a particular
module can be configured for my needs.  This is where I need advice.
Because this org does not have money for hardware they will use
Squareup for on-site dues, fees and product sales. Squareup and/or
Stripe for on-line purchases.
@ allow "Adults", 18 years old or older, to sign-up/register (take profile
data).  Let's call this Adult with a login account an "Account Holder".
* purchase a personal "Adult" membership (one-time or recurring /
subscription) or signal that they will pay in person via with cash or
check.
* purchase one or more memberships for other related Adults or Youth
(under 18 years old).  The "other" membership purchases must take
"non-login" profile data.
* when creating additional memberships be aware of special billing
rates; for example: multiple memberships "belonging" to the Account
Holder are considered to be a "Family Membership".  No Family pays
more than a fixed amount per month.  Also, if multiple Youth
memberships are created then there is special pricing: the first Youth
is at the regular Youth rate and each additional Youth is at a reduced
rate -- keeping in mind that maximum Family Membership rate.
* cancel Membership(s).
* modify Membership Profile data and payment methods for all Members
belonging to the Account Holder.
@ more than one Account Holder may have financial responsibility for a
"Family Membership".  This can get complex.  The non-profit does not
currently have any complex Family payment situations but in the past there
have been situations where a non-"member" parent/guardian will pay for
one or more members one month and one or more other parent/guardians
will pay for some sub-set of members.  Sometimes these non-members are
also non-Account-Holders.  All of the payments need to be tracked and
applied to the correct member(s).
@ the "Profile Data" associated with each member needs to include the
obvious: name, birth-date, address, phone number(s) for contact,
SMS-allowed number(s), emergency contact number(s), email address(es).
Emergency contact information, especially for Youth, might need multiple
contacts and an order of contact.
@ the non-profit is educational in nature.  The member information
needs to
carry information about test dates, pass/fail status, current level, class
attendance dates. This information should be viewable by the Account
Holder but can oly be added/modified by an Teachers.
@ Teachers is a group that is made of select Account Holders who are
Members.  Membership in the Teachers group is managed by Administrators.
@ Administrators is a group that is made of select Teachers.
@ report generation features should be available to Administrators and
offer
* list of login accounts with no members with options to delete, revoke,
lock the login accounts.
* list of members with filters for just about anything that can appear in
the profile data.
* billing related reports: who paid, how much, how, when, in what time
period, etc
@ Teachers need tools to, at least, take attendance.
@ Teachers and Administrators need the ability to allow new Account Holders
to sign-up on-sitre; and, to allow Account Holders to add / modify
account / member information.  Teachers may or may not need the
ability to
"Close" Account Holder accounts, that's still being debated.  They
probably
should be able to Pause accounts with comments that Administrators review.
That is not an exhaustive list but this is probably too long already.
In a nutshell, I need a membership, billing, student tracking app (or
cooperating apps).  The advice I seek is: which existing Django based
modules do what I want or come close?
Thanks
--
You received this message because you are subscribed to the Google
Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/0fa5f920-db2f-494b-a398-6329588abf63%40googlegroups.com
<https://groups.google.com/d/msgid/django-users/0fa5f920-db2f-494b-a398-6329588abf63%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+***@googlegroups.com.
To post to this group, send email to django-***@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/0ecba2df-da11-5aa1-3926-caab8de88efb%40dewhirst.com.au.
For more options, visit https://groups.google.com/d/optout.
Continue reading on narkive:
Search results for 'Advice on choosing Django modules?' (Questions and Answers)
4
replies
Choosing a language: questions on Python?
started 2011-07-25 11:01:15 UTC
programming & design
Loading...