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

Models: Users #3

Open
elthran opened this issue Jun 4, 2018 · 2 comments
Open

Models: Users #3

elthran opened this issue Jun 4, 2018 · 2 comments
Assignees
Labels
model A back-end model of an object

Comments

@elthran
Copy link
Owner

elthran commented Jun 4, 2018

A User on the account should have (note, everything in my database has an id and time created timestamp by default so i wont add those):

  • username? (I assume we don't have any usernames at all. We would only need usernames if you want to be able to create accounts without needing an email

Correct. No username required.

  • email address (does this need to be unique in the database? Can you have multiple accounts with one email address?)

I'm not sure. I would assume one person per email. Can you think of a scenario where one person would need multiple accounts?

  • password (i spent the weekend and have now set up an encryption system so passwords are hashed before they are stored, so there are no plain-text passwords anywhere. it should be safe)

  • business (you must have a business associated with the account? you must either create the business when you create the account OR create an account through a business employee link, therefore there are never accounts that dont have a business associated with them yet?)

Correct

  • permissions (i think permissions should be declared on the user and not on the business. what permissions are there? is there a setting to become admin or simple a list of permissions? what would an admin setting even do? I will need a list of every possible permission a business can give to a user and if its a true/false permission or a range of permissions)

I agree permissions should be on the user. Read only permissions (they can only view appointments, calendar and client info), Book, Reschedule or Cancel Appointments, or Admin Rights (full rights) which will allow the user to change business info, services, user accounts, etc.

  • personal info (is this needed? will a user put any of their info or will only the business have info?)

I think it might be useful to have users input their name, email, phone no

  • available schedule (i think its easier for each user to have their own schedule and then the business queries its users to post the business hours and users. this part will be more complicated since im not sure the best way to store availability. i assume you could have a different availability for every day of the month? how far into the future can you set your availability? this will take me sometime to set up how to store this efficiently into the database.)

Yes, different availability for each day is required. Should have a way to setup standard default hours (M-F, 9-5) but also if we could have the option to do this in a date range as well. For example, summer hours from July 1-Aug 31 would be 11-7 but then they'd automatically go back to 9-5 in September. You'd also have the option to manually go into the calendar and change hours on different days.

Also, different locations for the same business based on practitioner.

  • appointments? (i think the appointments will not be stored here; they will be stored in their own table of appointments. then through the database you can query appointments and filter by your username. or by your business because each appointment will have a business and user that its attached to.)

anything else related to the user that should be stored in the user table? probably things like subscription level (the higher their level, the more site features they can access), friends?, etc. Anything the user needs to track needs to be in this database.

@elthran elthran added the model A back-end model of an object label Jun 5, 2018
@elthran
Copy link
Owner Author

elthran commented Jun 13, 2018

Another question for Users: I want to get the terminology correct so we don't get confused. Currently there are only three words I am using:

  • Business (A business. It has a list of employees, a list of clients, a list of appointments, etc.)
  • User (This refers to employees and owners of companies. I'm not sure how to split this. Should I have "owners" and "practitioners" or something, where owner implies admin privilieges to the business and practitioner implies they have access to see stuff but cant change stuff)? They I can have Users and each user is either an owner or practitioner. But then some owners will also be practitioners. Can you help me clarify the types of accounts and what names we should use. We could do it simply like all accounts are "Users" and some accounts are also "Admins". So you can be a user or a user+admin and have extra privileges.
  • Clients: These are profiles of people that use businesses and are stored by their email address. They dont have real accounts and clients can be created by businesses even if the client never went to the website.

@melissachang9
Copy link
Collaborator

melissachang9 commented Jun 13, 2018 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
model A back-end model of an object
Projects
None yet
Development

No branches or pull requests

2 participants