System Style – Style Google Calendar

Google Calendar resembles an unique calendar that we can utilize on our computer system or phone. We can utilize it to keep in mind essential things, like birthdays, visits, and occasions. We can likewise set pointers to assist us keep in mind when something is showing up quickly. We can likewise share our calendars with our friend or family. It resembles having our own unique schedule that assists us monitor whatever that we require to do.

With Google Calendar, we can rapidly arrange conferences and occasions and get pointers about upcoming activities, so we constantly understand what’s next.

Requirements of the System:

Practical Requirements:

  • Schedule an occasion: In a calendar, we have the ability to include an occasion with other individuals. It can be a single user or numerous users.
  • Inspect schedule of users: While we are setting up an occasion prior to that if we can find out because specific time the individual is offered or not.
  • Welcome users to the meeting/event: The user needs to have the ability to welcome other users to the conference or occasion. The variety of users welcomed for an arranged conference can be several than one.
  • Demand RSVP: Prior to publishing a welcome to the individual we wish to know if that specific user is currently obstructed or if he is offered. So these kinds of reactions can be managed by asking for RSVP.
  • Fulfilling Suggestions: Getting a notice prior to the time for a specific conference with a specific individual about the program and all those information would assist get ready for the conference ahead of time.
  • Customize the conference/ occasion: This consists of making modifications to an existing conference or occasion that you have actually developed or have actually been welcomed to.
  • Cancel a meeting/event: This consists of erasing or eliminating a conference or occasion that you have actually developed or have actually been welcomed to.
  • Lookup for all conferences in the calendar: This consists of seeing a list of all occasions that have actually been designated as conferences or occasions.
  • View Calendar: This permits the user to see their arranged occasions and visits in a visual format which can be a month-to-month, weekly, or day-to-day view, and it consists of information such as the date, time, area, and description of each occasion.

Non-Functional Requirements:

  • High schedule: This indicates that users ought to have the ability to utilize Google Calendar whenever they require it, without experiencing any substantial disruptions or downtime.
  • Ultimate Consistency: This indicates that in some cases modifications made to an occasion may disappoint up for everybody immediately, however ultimately the modifications will be used and everybody’s calendar will reveal the very same upgraded occasion.
  • Low/minimum latency: This indicates that the application needs to react rapidly to your demands and updates, so you do not need to await a long period of time to see your modifications.
  • Long Lasting storage: The system needs to be resilient sufficient to not lose any type of user and conference information.

Memory and Estimates of the System

Let’s begin with the evaluation and restrictions due to the fact that these things assist us to make much better style choices that’s why we do evaluations together with the requirement event.

Assumptions:

Let’s presume the system is developed for 100M users.

So, the variety of concurrent users= 100M

And out of all these users, 1/10 of individuals are really setting up the occasion.

So, 1/10 post welcomes = 10M

And presuming a specific individual produces 5 occasions in a day.

So, 5 occasions/ user = 50M welcomes daily

So, storage for 1 welcome= {Fulfilling material +userId, welcome list+ date}

= (* ) 1 KB (* ) For that reason, the Overall storage = 1KB * 50M

=50,000,000 KB = (* ) 50GB/day (* ) Storage for 1 year = 50 * 365 (* ) = (* ) 20TB/year (* ) (* ) Information Circulation Diagram

Information circulation for a specific user seeing the Calendar (* ) information circulation for the user seeing the Calendar

1. The user opens the Google Calendar app on their gadget. 2. The gadget sends out an HTTP demand to the Google server to confirm the user and develop a protected connection.

3. The Google server confirms the user’s qualifications and sends out an HTTP reaction to the user’s gadget.

4. The gadget sends out an HTTP demand to the Google server to recover the user’s calendar information. 5. The Google server obtains the user’s calendar information from the Google Calendar database.

6. The gadget shows the calendar information to the user through a user interface.

7. The user communicates with the calendar by including, customizing, or erasing occasions or altering settings.

8. The Google server processes the demands and updates the user’s calendar information in the Google Calendar database.

information circulation diagram of the whole system

information circulation diagram of the whole system

1. The user produces an occasion in their Google Calendar by supplying occasion information such as the occasion name, date, time, and area.

2. The occasion information is saved in the user’s Google Calendar account, which is hosted on Google’s servers.

3. User welcomes participants: If the occasion has participants, the user can send invites to those participants utilizing their e-mail addresses or by sharing a link to the occasion.(* )4. Participants react to the invite: The participants get the invite and can pick to accept, decrease, or tentatively accept the invite. Their reactions are taped in case information.(* )5. Occasion pointers: If the user has actually set pointers for the occasion, these pointers are activated at the suitable times, based upon the user’s choices.

6. Occasion alerts: If the user has actually set alerts for the occasion, these alerts are sent out to the user’s gadgets at the suitable times, based upon the user’s choices.

7. Occasion updates: If the user makes modifications to the occasion, such as altering the date or time, these updates are integrated throughout all gadgets and participants are alerted of the modifications.

8. Occasion removal: If the user erases the occasion, it is gotten rid of from their Google Calendar account and participants are alerted that the occasion has actually been canceled.

(* )Database schema and style

We would have the following tables to work along:

Database Schema Style

It is essentially about comprehending the requirement from a practical point of view and choosing how we are going to use the database and how are we going to create it.

While our information design appears rather relational, we do not always require to keep whatever in a single database, as this can restrict our scalability and rapidly end up being a traffic jam.

We will divide the information in between various services each having ownership over a specific table. Then we can utilize a relational database such as

PostgreSQL or a dispersed NoSQL database such as Apache Cassandra

for our usage case.

API style of the system

Let us do a fundamental API style for our services:

1. Show details for each user.

@GET/ api/users/ {userId}

For Set Up Conferences or Occasions (* )2. Get conferences for the user for the existing week(* )@GET/ api/users/ {userId}/ conferences

{

date: currentDate,(* )days: 7

}

3. Producing the conference Occasion(* )@POST/ api/users/ {userId}/ conferences

{ startTime: anyStartTime, endTime: anyEndTime,

” users”:

,

” subject”:” Crucial Fulfilling”,

“meetingBody”: ” Let’s have a stand-up”

}

4. Upgrading a conference Occasion

PUT/ api/users/ {userId}/ conferences/ {meetingId}
{
startTime: anyStartTime,
endTime: anyEndTime,,
” users “:

,

” subject”: “Fulfilling Cancelled”,
” meetingBody “:” Let’s have a stand-up”
}
For Suggestions
A suggestion includes:[“[email protected]”,”[email protected]”] When to reveal the suggestion, revealed minutes prior to the occasion begins time.
The shipment approach to utilize.
Suggestions can be defined for entire calendars and for specific occasions. Users can set
default pointers

for each of their calendars; these defaults use to all occasions within that calendar. Nevertheless, users can likewise bypass these defaults for specific occasions, changing them with a various set of pointers.

5.
Establishing the default conference suggestion

pointers
“: {[“[email protected]”, “[email protected]”]”
useDefault
“: incorrect,
# Overrides can be set if and just if useDefault is incorrect.

bypasses

  • “:
  • }

The shipment techniques provided by the system are: Pop-up: These are supported on mobile platforms and on web customers.

Email: Sent out by the server.

Top-level Style of the System Style for a specific user seeing the Calendar and the associated events/meetings to that user Style for a specific user seeing the Calendar and the associated events/meetings to that user
Total Top-level Style of the System The top-level style of the system Microservices Utilized
Conferences Microservice
Let’s take a look at how a user can produce a conference for a group of users: Validated POST ask for a brand-new conference concerns the backend. After recognition of each field, the backend telephones to the Conferences microservice to produce a conference. This microservice makes an entry in the conferences table with all the information from the demand body.[
      {
        “method“: “reminderMethod”,
        “minutes“: “reminderMinutes”
      },
      # …
  ]
For each user in the guests’ list, include the entry for each user in the welcomes table.

Send out the list of welcomes to the Alert generation microservice to inform all users of the conference details.

  • Alert Microservice This is extremely easy. It checks out from the line all the welcomes and sends out a notice through e-mail to the users.
  • Conclusion In conclusion, creating a system like a Google Calendar requires mindful factor to consider of numerous parts and functions which would be vital to its performance. The system should be scalable and versatile, permitting simple combination with other applications and platforms. It needs to likewise be protected and dependable.

In general, a properly designed system for Google Calendar ought to supply users with a trusted and effective tool for handling their day-to-day schedules and occasions, while likewise ought to be permitting simple partnership and combination with other applications and platforms.

Like this post? Please share to your friends:
Leave a Reply

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: