How to integrate cleanly "member users" for an "association" app/module

Hi, I’m new to ERPNext/Frappé development.

I want to create an app/module managing members for associations.

A member is not like a typical user.

  • it can only access its profile
  • it has some custom data and process, e.g. membership fee management
  • custom webpage

But at the same time, a member shares a lot of things with a regular user:

  • login capabilities
  • modification of some of its own data

I wonder how we should integrate them cleanly in Frappé.

Should they have their own doctype? Then, how do they gain regular user capabilities (like login) without coding the wheel again?

Is there a way to link a user to a member doctype?

My guess is to use the “user” doctype, but link those special users to a “member” doctype having all custom properties, create a “member” role and a “member manager” role.