Copropiedad Integral | development update | Email notifications for memberships updates, encrypted url for owners data update and more.

in #utopian-io6 years ago

Repository
Copropiedad Integral repository

A condo is a type of real estate divided into several units that are each separately owned, surrounded by common areas jointly owned.

Copropiedad Integral has been created to provide condos (condominiums, horizontal property, co-properties) managers with the necessary tools to manage administration and communication with co-owners and leaseholders in a simple and safe way. Development version is available here

new features

Memberships transfer.

By default, when a users created a new condo, he is assigned as the main administration and an administrator membership is created for him. Main administrators have all privilegies as condo administrators, and can assign common administrator memberships to another created users. if it is the case that a main administrator wants to transfer these privileges to another user, now he is able to transfer his membership to another active common administrator user in the condominium.

Now, in the memberships module, there is available the orange button "Transfer main membership". This button is only available for main administrator users, and, obviously, the only can transfer their own membership (Mirador del Takay is just the condominium name):


Screen Shot 2018-07-26 at 3.43.18 PM.png

That's what this table looks like for a common administrator:


Screen Shot 2018-07-26 at 3.48.23 PM.png

When main administrators click the "Transfer main membership" button, they are redirected to the following form:


Screen Shot 2018-07-26 at 3.50.47 PM.png

In the select field, the options will be the common administrator users registered in the condominium. In this case, we have only one, Lalo Landa:


Screen Shot 2018-07-26 at 3.52.34 PM.png

As I have said, main administrator memberships only can be transferred to common administrator users. If there are not common administrator users registered, the following message will be displayed instead the transfer form:


Screen Shot 2018-07-26 at 4.37.28 PM.png

By submitting the transfer membership form, the following message will be displayed to the user (Blue message at the top):


Screen Shot 2018-07-27 at 12.59.01 PM.png

And, as you can see, the main administrator privilegies have been removed. Now, User is not able to transfer his own membership and can't delete another administrator memberships, and, in the membership create form, he can't create administrator memberships, this is a privilegie only for main administrator. Now, the main administrator is Lalo Landa, the crown item allow us to identify it.

Now, is Lalo Landa who is able to transfer his own membership and to delete and create administrator memberships. We can know who is the authenticated user in the right side of the navigation bar.


Screen Shot 2018-07-27 at 1.09.52 PM.png

Detailed code changes can be found in this commit

Periodic task to expire old "owner data update" links.

In my last development update, I introduced a new mechanism to update owners data. Condo administrators, can send an email message to registered owners with an email address registered in the application, asking them for update their contact data. The email message contains a link that redirects users to the owner data update form. How owners don't have an account in the application, they can access to the form without be authenticated.

For security reasons, this link is only available when the administrators send an update request, and is disabled when the owners submit the form. But, we can have cases in which the owners never submit the form, and, for this reason, I have created a periodic task that will run every day, at 2:00 GMT, and will check for active update forms with more than 30 days of creation. This periodic task has been created using Huey task manager, that allows us to manage asynchronous, periodic and second level tasks. Take a look to the created task:


Screen Shot 2018-07-27 at 1.41.30 PM.png


Source

In this task, we are filtering enabled forms with more than 30 days of activation, and we are disabling the filtered result. Activation date is updated each time that a condo administrator request owners data update.

Detailed code changes can be found in this commit

Encrypted owners data update link.

As I said above, the data update link is sent to the owners in an email when condo administrators request data update. It was a plain link, with an id in the url to identify which unit must be updated in the link. This was basically the unit id. But, How owners don't have and account in the application, to access to this form is only necessary to have the link, without authentication. To add another security level to this form, I have added and extra parameter to the url.

Now, each time that a condo administrator request for data update, a random key is generated per each unit, and this key is used to encrypt and extra parameter in the update form url. In this way, the same link can't be used two times to submit the form, because we are changing it each time that an administrator request a data update. To do this, I have used the Hashids library. So, now, the only way to get access to the owners data update form is accessing the owner email inbox, or guessing the random key of 30 characters using to encrypt the url to access to the unit owners information.

Now update links look like this, (Before, links didn't have the long string parameter):


Screen Shot 2018-07-27 at 1.57.42 PM.png

And this link will be different each time that a condo administrator request data update for a specific unit.

Detailed code changes can be found in this commit

Email notifications for membership update and membership delete.

Condo administrators have some privilegies to create, update and delete memberships. When a membership is updated or deleted, is really important for the membership owner to be notified about the changes. For this reason, I have added an email notification to the update - delete membership events.

When a membership is edited, the membership owner receive the following email:


Screen Shot 2018-07-27 at 2.09.29 PM.png

When a membership is deleted, the membership owner receive the following email:


Screen Shot 2018-07-27 at 2.12.42 PM.png

Detailed code changes can be found in these commit: 20fe5, e7ce8


GitHub Account

https://github.com/aaquirogal
Pull Request 42

Roadmap

With the help of the company http://www.servisolucionesph.com/, we have designed a group of basic functionalities to implement in next days:

  1. parking information.
  2. pet information management.
  3. Vehicles information management.
  4. Domestic worker information management.
  5. Authorized visitors information management.
  6. Owner and leaseholders data update. (Working on it)
  7. Make a reservation for rent Social Hall or Auditoriums.
  8. Generate financial and administrative reports for consultation at the Ordinary or Extraordinary Assembly.
  9. Information Documents (Cleaning Awareness, Recycling Campaigns, Portfolio Collection, documents of Coexistence).
    10 .Attach fixed documents of the co-ownership for permanent consultation (Coexistence Manual, Horizontal Property Regulation, Administration Attention Schedules, Rental Schedules, Rental Costs ...).
  10. Providers database.
  11. Online voting.
  12. Sending of Mass Collection Accounts through e-mail.
  13. Residents administration.
  14. Condo roles.

These activities has been added to our public trello board.

How to contribute?

Copropiedad Integral has been developed using the Django framework. You can fork the project, and run it locally is very easy. Follow the steps described in the open source repository installation guide. The project has been configured using Docker. you only need to install Docker and follow these steps.

If you want to contribute, please join my Discord

GitHub Account

https://github.com/aaquirogal


Have happy days ✌


Sort:  

Thanks for the contribution, @kit.andres! Everything looks good, except one tiny thing: in my opinion you should do less comments like this

# Get building.
building = self.get_object().building

and add more docstrings instead.

Other than that I would just like to say that you should keep up the good work!

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

Hi... thank you for your review, and yes, you are totally right, this type of comments are redundant and unnecessary, I'll fix them, thank you so much.

Congratulations @kit.andres! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of posts published

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Hey @kit.andres
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!