Find start/end dates based on payment of membership fees. Possible implementation:
- Keep a "Membership period" table that has user_id, start and end date, and a "closed" field
- When the first membership payment is received, create a record with startdate as the current month. The end date is set to startdate + (amount/monthly_fee) months
- When a new payment is received, bump the enddate with (amount/monthly_fee) months
- Every month (?), run a job to check the current month with the end dates of all users. If the current month is past the end date for a user, set the "closed" field, indicating that the user is not a member any more. New payments will create a new record in this table, for that user.