A community management system for easier governance and administration the common residential areas.
Each endpoint signature can be changed during development, feel free to make new additions or corrections where you think it is necessary.
TIPS: Add "READY" prefix in front of each point that is fully implemented. Add "WORKING" prefix in front of each point that is currently under construction.
I. UserController
- Create User (POST) - api/user
- Update User by ID - (PUT) - api/user/{id}
- Delete User by ID - (DELETE) - api/user/{id}
- Delete User by Email - (DELETE) - api/user/{email}
- Get User by ID - (GET) - api/user/{id}
- Get User by Apartment Number - (GET) - api/user/{apartment-number}
- Get all Users - (GET) - api/user
- Get all Users without the current logged user - (GET) - api/users-available
- Get all Users matching a given Name - (GET) - api/user/{name}
- Get all Users that have taxes which are not paid - (GET) api/user/taxes-not-paid
- Get all Users that have concrete tax which is not paid (GET) api/user/taxes-not-paid/{tax-id} (Example: Tax - "Elevator electricity and support" -> Ivan, Gosho, Marto, Mariyan have not paid)
II. TaxController
- Create Tax - (POST) - api/tax
- Update Tax by ID - (PUT) - api/tax/{id}
- Delete Tax by ID - (DELETE) - api/tax/{id}
- Get Tax by ID - (GET) - api/tax/{id}
- Get all Taxes - (GET) - api/tax
- Get all Taxes which are available for payment - (GET) - api/taxes/available
- Get all Taxes which are not-available for payment (their deadline has passed) - (GET) - api/taxes/expired
III. ProposalController
- Create Proposal - (POST) - api/proposal
- Update Proposal by ID - (PUT) - api/proposal/{id}
- Delete Proposal by ID - (DELETE) - api/proposal/{id}
- Delete all Proposals by given AuthorID - (DELETE) - api/proposal/{author-id}
- Get Proposal by ID - (GET) - api/proposal/{id}
- Get all Proposals - (GET) -api/proposal
- Get all Proposals by given AuthorID - (GET) - api/proposal/{author-id}
- Get all Proposals which are Approved - (GET) - api/proposal/approved
- Get all Proposals which are Pending approval - (GET) - api/proposal/pending
IV. InvitationController
- Send Invitation - (POST) - api/invitation with Body { "email@domain.com" }
- Get Invitation by ID - (GET) - api/invitation/{id}