DEV Community

Cover image for People I Know - My little PRM
Lars Richter
Lars Richter

Posted on • Edited on

6

People I Know - My little PRM

What's the name of Jane's daughter again?

or

I remember, that Michael quit his job. But where did he apply for a new job? I'm sure he told me...

Does this kind of question sound familiar to you? Welcome to my life. :-)

My memory is not the best. Especially, when it comes to names and stuff. That's why I started using my Google Contacts pretty extensively.
Did you know, that you can store "relationships" in your Google contacts? That's pretty useful.
So on John's contact, I stored a couple of relationships like:
"Wife": "Jane"
"Son": "Michael"
"Daughter": "Rachel"

That helped me a lot already. If I knew I was going to meet John today, I just checked his contact to remember the names of his kids.
But last time we met, he told me something interesting about his son? What was it again? He broke his arm or something like that.
For this stuff, I used the "Notes" field on the contacts. It's just a free-text field to hold any information like "His son Michael broke a leg".
So if I check his contact (and the "Notes" field) before we meet, my first question could be "Hi John. How is Michael? Is his leg ok again?".

All that is pretty useful. But I was still missing some features. Because the "Notes" field can grow pretty quickly. And such a big chunk of free text can get confusing.
Wouldn't it be nice, if you could store a list of, let's call it "status updates"? Just a text and a date. These status updates (or "timeline") could be ordered by date.
That's much clearer.

I thought about using a simple CRM (Customer Relationship Management), but none of them really fit my needs or could easily be hosted on my server. While searching for
a simple CRM, I learned that PRMs are a thing. A PRM is like a CRM, but for personal use (instead of professional/commercial). It's a "Personal Relationship Management".
But I had similar problems with the already existing PRMs. For some of them, it was the price, for others the hosting, etc.

I'm a developer. So I built my own PRM.

It is called "People I Know" and you can find the source code on GitHub.

GitHub logo n-develop / peopleiknow

"People I Know" is a PRM (Personal Relationship Management)

People I Know

"People I Know" is a PRM Screenshot

What is a PRM?

A PRM is a "Personal Relationship Management". On the web, you will also find the name "Personal CRM". So you can use "People I Know" to store information about the people you know. ;-)

Is it like my "Contacts" app on my phone?

Yes, somehow it is.

So, why would I use it?

There were a few reasons for me to build this application. For "normal" contact management, the standard android or iOS app would be fine. But there was something missing for me.

  1. If you use the before mentioned services, you don't own your data. It is stored somewhere in Apples or Googles Cloud services.
  2. The standard apps / services do not provide good possibilities to store some kind of timeline / updates for the contacts. You still have the "Notes" field, but it is limited…

Feedback is very welcome. Please let me know what you think. If you see major issues, feel free to contact me or (even better) create an issue on GitHub.
Here are some TODOs that are still on my list:

  • Photo upload is still missing
  • Clean up the JavaScript. Right now it's just one "big" file.
  • Improve the mobile user experience

As you can see from the TODOs, my frontend skills are... let's call it "limited". ;-) I use Bulma for the styling and pure JavaScript (no framework, no jQuery) for the scripting. The backend is done in ASP.NET Core.

Again, feedback is very welcome. It's the first "toy project" that I share publicly.

Sentry blog image

How I fixed 20 seconds of lag for every user in just 20 minutes.

Our AI agent was running 10-20 seconds slower than it should, impacting both our own developers and our early adopters. See how I used Sentry Profiling to fix it in record time.

Read more

Top comments (0)

Cloudinary image

Optimize, customize, deliver, manage and analyze your images.

Remove background in all your web images at the same time, use outpainting to expand images with matching content, remove objects via open-set object detection and fill, recolor, crop, resize... Discover these and hundreds more ways to manage your web images and videos on a scale.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay