Advice on choosing Django modules?

36 views
Skip to first unread message

Dean Karres

unread,
Nov 23, 2018, 4:46:40 PM11/23/18
to Django users
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

Jason

unread,
Nov 23, 2018, 9:59:37 PM11/23/18
to Django users
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

Mike Dewhirst

unread,
Nov 25, 2018, 3:11:52 AM11/25/18
to django...@googlegroups.com
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
> --
> 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
> <mailto:django-users...@googlegroups.com>.
> To post to this group, send email to django...@googlegroups.com
> <mailto: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
> <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.

Reply all
Reply to author
Forward
0 new messages