Notification handling in a postgresql database - database

Im designing a database for a web app.
I'm struggling with the notifications topic: in my web app there will be a forum with messages, comments, and users. I would like users to be notified when someone answer their post and when comments are added to their posts, or when they follow a post.
I dont understand if I need to :
a) code a listener in my django (python) backend to monitor the database and populate the notification table in the database, or code each database message and comment handling so it creates notifications in the database also?
b) or if I can design the database so it autopopulates a notification table I can thereafter use in my backend?
c) or if I need to code my frontend so each action of the user populates at the same time the message/comment and notification tables?
Can someone give me a hint?
edit : No answers or comments yet...should i post this on dba stackexchange forum?
I've tried on dba stackexchange and they said all the hypothesis were good, just have to choose which is easier to implement.
Thank you

Related

Chat with React and Realtime database firebase. Do I need backend? How can I structure my data?

I'm working on a project using React 18 with Firebase Authentication and Realtime Database.
The project is a real-time chat between two users, I wan't this project to be very secure and protect messages/conversations. I have the following "cases" or "rules" to specify this chat functions:
User with profile Volunteer can chat with maximum 10 users with the simple-user profile.
Volunteer can see previous messages or the "history" with a registered simple-user but simple-user can't see previous messages. I need to protect chats for simple-user.
All the active "chats" between one volunteer and maximum 10 simple-users have to be seen just for the Volunteer profile. The simple-user just send and receive messages with a random Volunteer.
I search on the Internet which database fit better with my project model and Realtime Database looks like the better option. But now I would like to have your opinions about how can I handle the database to get the data and connection that I need according to the previous rules I wrote.
I know Firebase is a No-SQL database, but I create this diagram to know if the data structure for this chat could work.
If I store different information like the image above, could I get the information I need from each chat?
Turn is the working shift time that "volunteer" is working on the chat platform.
Session is the information of the turn of that volunteer and simple-users that they talk.
Chat is the "conversation" or the instance to generate messages between two different users.
My questions are:
Do I need a backend project such as nodejs? This backend would be for store the endpoints to firestore and apply some logic rules for queries this way I can have a React project without logic
If I structure my database like the image above, can I be able to get the information to achieve the "rules" that I need?
Do you have any suggestion to build a chat like this? In the future this project could be huge with a lot of data store and multiple users chatting with each other. Right now I have just the UI code and firebase connection. No other code yet.
Thanks for your contributions!

Firebase Realtime array populate div

Okay so I’m need guidance on where to start.
What I want to do is upon clicking a button in my web app which will be labelled “search” the web app will connect to my realism database and search the data base for the “search criteria” and the once found all matching cases it will create div blocks with the information inside it, in a list view and assign the ID of the div to the UID it gets back from the database.
database:
Users
--> Country
---->State
----->City
------>Post/ZipCode
------->UID
--------> Users informantion
Welcome to StackOverflow!
A great place to get started is the Firebase Realtime Database doocumentation or searching for Firecasts on YouTube (linked below).
As requested, here are some questions to ask yourself to get started and help scope out and define your new Firebase project.
What language are you going to use?
Are you planning on using any frameworks/libraries? e.g. For Javascript, these would include things like jQuery, Polymer, and React
What information are you storing in your database? e.g. user profiles, private user data/settings, public indexes, username lists, etc.
How is your database structured?
What data is being searched? The entire database? Values in a certain location?
What data needs to be displayed in your view?
Is the data accessible for just the current user or is it a public database that anyone can use?
What search criteria will be used? Is it just one filter at a time or many?
The answers to these questions aren't set in stone, but are to help you start thinking about the future of your project. They can be changed at any time as this isn't SQL where everything has to have its own schema.
If you intend on using "advanced searches" where you'll filter by multiple parameters at the same time, consider using Cloud Firestore instead.
I recommend looking at some Firecasts to help guide you through these questions. Here are some links to them:
Firebase YouTube Channel
Video: Getting Started with the Firebase Realtime Database on the Web
Playlist: Firebase on the Web

Managing user accounts for different sites with one database

We now have one site running but we will need to build a branded site for our client soon. The client site will have exactly the same data set as our current site expect for the user data. The client site must have totally separated user info which allows only the client to use the site.
I don't see the need for setting up a new database or creating a new user table for the client. My tentative solution is add a "Company" column for the user table so that I can differ which site the user data row is on.
I do not know if this approach will work or not or if it is the best practice. Could anyone with experience like this shed some light on this question?
Thanks,
Nigong
P.S. I use LAMP with AWS.
Using an extra column to store a company / entity id is a common approach for multitenant system. In general you will want to abstract the part that that verifies you can only retrieve data you're allowed to a piece that all queries go through, like your ORM. This will prevent people new to the project from exposing/using data that shouldn't be exposed/used.

How do I keep a database of repo stats and user stats, in sync with github?

How do I keep a database of repo stats and user stats, in sync with github?
I know that I can use
curl https://api.github.com/repos/reggi/handwritten
and
curl https://api.github.com/users/reggi
To get repo and user data.
But what's the best way to keep that in sync with my database?
I don't believe theres a webhook for this general data, like when a stargazer gets added.
Should I just have a cron script that updates the database daily?
I don't believe theres a webhook for this general data, like when a stargazer gets added.
There is one event related to stargazing, and strangely enough, it is the Watch Event.
See "Upcoming Changes to Watcher and Star APIs".
More generally, using WebHook is a good way to be kept in sync with a lot of events regarding a repo or a user account.

The suitable way to import data to CRM ( Smartsheet) from website?

I'm doing wordpress website. And what i wanna do is: when user send contact form ( include their information) or user register, their information is added to CRM directly.
What i wonder is :
1) I should write my own plugin to do these things? possible? Because I think it will get the problem of permission ( when access to CRM)
2) There is a contact plugin which data is saved to database. Can we do cron tab to add data every period of time?
Can I ask you guy:
Are 2 above ways possible?
Are there any easier and possible way to do?
Really appreciate your help.
It's quite possible for Smartsheet to receive such information through the Smartsheet API. To help you get started with connecting to the API with PHP, and sending data to your sheet, I recommend looking at the Smartsheet Platform PHP Samples.
For your particular situation I would look at the Sheet Structure sample.

Resources