{"id":246,"date":"2026-04-13T22:29:20","date_gmt":"2026-04-13T22:29:20","guid":{"rendered":"https:\/\/beginnerprojects.com\/cms\/?p=246"},"modified":"2026-04-14T22:08:57","modified_gmt":"2026-04-14T22:08:57","slug":"learn-how-the-celebrations-app-actually-works","status":"publish","type":"post","link":"https:\/\/beginnerprojects.com\/cms\/learn-how-the-celebrations-app-actually-works\/","title":{"rendered":"Learn How The Celebrations App Actually Works"},"content":{"rendered":"\n<p>In this guide, I\u2019ll break down the three main parts of the free <a href=\"https:\/\/beginnerprojects.com\/cms\/never-forget-a-birthday-again-a-simple-free-ai-powered-celebration-tracker\/\" data-type=\"post\" data-id=\"229\">Celebrations app<\/a>. Think of this as a map of the software.<\/p>\n\n\n\n<p>For many of you, the code inside that&nbsp;<code>.html<\/code>&nbsp;file looks like a jumble of symbols and brackets. You might be wondering:&nbsp;<em>&#8220;What is actually happening in there? And can I change things without breaking it?&#8221;<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">1. The &#8220;Paint &amp; Polish&#8221; (The CSS Section)<\/h3>\n\n\n\n<p>When you open your file, you&#8217;ll see a large section wrapped in&nbsp;<code>&lt;style&gt;<\/code>&nbsp;tags. This is the&nbsp;<strong>CSS (Cascading Style Sheets)<\/strong>.<\/p>\n\n\n\n<p><strong>What it does:<\/strong>&nbsp;CSS is responsible for everything you&nbsp;<em>see<\/em>&nbsp;but don&#8217;t&nbsp;<em>interact<\/em>&nbsp;with. It tells the browser that the background should be dark, the fonts should be &#8220;Inter,&#8221; and that the &#8220;Days Until&#8221; tags should be Green, Orange, or Red.<\/p>\n\n\n\n<p><strong>\ud83d\udca1 Pro Tip:<\/strong>&nbsp;For most beginners,&nbsp;<strong>you can completely ignore this section.<\/strong>&nbsp;You don&#8217;t need to touch a single line of CSS for the app to work. However, if you&#8217;re feeling adventurous, you can ask an AI:&nbsp;<em>&#8220;I have a CSS section in my HTML file; can you help me change the background color to a deep navy blue?&#8221;<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">2. The &#8220;Skeleton&#8221; (The HTML Body)<\/h3>\n\n\n\n<p>Further down, you&#8217;ll find the&nbsp;<code>&lt;body&gt;<\/code>&nbsp;section. This is the&nbsp;<strong>HTML (HyperText Markup Language)<\/strong>.<\/p>\n\n\n\n<p><strong>What it does:<\/strong>&nbsp;If CSS is the paint, HTML is the framing of the house. It defines where the Title goes and where the Table is placed.<\/p>\n\n\n\n<p><strong>Where you&#8217;ll spend your time:<\/strong>&nbsp;The most important part of this section for you is the&nbsp;<strong>Data Array<\/strong>. Look for the part that looks like this:&nbsp;<code>const celebrations = [ { name: \"Name_1\", ... } ]<\/code><\/p>\n\n\n\n<p>This is where your personal information lives. Each person is wrapped in curly braces&nbsp;<code>{ }<\/code>. As long as you keep the quotes&nbsp;<code>\"\"<\/code>&nbsp;and the commas&nbsp;<code>,<\/code>&nbsp;in the right place, you can add as many people as you like.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"323\" src=\"https:\/\/beginnerprojects.com\/cms\/wp-content\/uploads\/2026\/04\/celebrations-app-edit-guide-1024x323.webp\" alt=\"Screenshot of VSCodium code editor highlighting the specific lines in the celebrations.html file where names and dates should be edited.\" class=\"wp-image-247\" srcset=\"https:\/\/beginnerprojects.com\/cms\/wp-content\/uploads\/2026\/04\/celebrations-app-edit-guide-1024x323.webp 1024w, https:\/\/beginnerprojects.com\/cms\/wp-content\/uploads\/2026\/04\/celebrations-app-edit-guide-300x95.webp 300w, https:\/\/beginnerprojects.com\/cms\/wp-content\/uploads\/2026\/04\/celebrations-app-edit-guide-768x243.webp 768w, https:\/\/beginnerprojects.com\/cms\/wp-content\/uploads\/2026\/04\/celebrations-app-edit-guide.webp 1140w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Look for the const celebrations section in your editor, as shown above, to enter your own personal dates.<\/figcaption><\/figure>\n\n\n\n<p><strong>A Note on the Date Format:<\/strong>&nbsp;You&#8217;ll notice dates look like&nbsp;<code>1968-09-05T00:00:00<\/code>. The&nbsp;<code>T00:00:00<\/code>&nbsp;is a technical marker that tells the computer the date starts exactly at midnight. This ensures that no matter what time of day you open the app, the countdown remains accurate.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">3. The &#8220;Brain&#8221; (The JavaScript Section)<\/h3>\n\n\n\n<p>At the bottom of the file, inside the&nbsp;<code>&lt;script&gt;<\/code>&nbsp;tags, is the&nbsp;<strong>JavaScript (JS)<\/strong>.<\/p>\n\n\n\n<p><strong>What it does:<\/strong>&nbsp;This is the most powerful part of the app. While HTML and CSS are static, JavaScript is&nbsp;<strong>active<\/strong>. It is the &#8220;Brain&#8221; that performs the following logic:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The Math:<\/strong>&nbsp;It looks at today&#8217;s date, looks at the birthday, and calculates exactly how many days are left.<\/li>\n\n\n\n<li><strong>The Sorting:<\/strong>&nbsp;When you click &#8220;Name&#8221; or &#8220;Days Until,&#8221; the JS instantly rearranges the list for you.<\/li>\n\n\n\n<li><strong>The Alert System:<\/strong>&nbsp;It decides which color tag to apply. If the math results in&nbsp;<code>3<\/code>&nbsp;or less, the JS tells the CSS to turn the tag&nbsp;<strong>Red<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p><strong>\ud83d\udca1 Pro Tip:<\/strong>&nbsp;This is the perfect place to experiment with AI. Try pasting the script section into an AI and asking:&nbsp;<em>&#8220;Can you add a feature to this JavaScript that sends an alert notification when a birthday is today?&#8221;<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Summary: The Big Picture<\/h3>\n\n\n\n<p>To put it simply, your app is a team of three:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>HTML<\/strong>&nbsp;builds the table.<\/li>\n\n\n\n<li><strong>CSS<\/strong>&nbsp;makes the table look professional.<\/li>\n\n\n\n<li><strong>JavaScript<\/strong>&nbsp;does the math and keeps the data organized.<\/li>\n<\/ol>\n\n\n\n<p>By simply replacing some names in the HTML section, you&#8217;ve already performed your first &#8220;software configuration.&#8221; You&#8217;re no longer just a user of technology\u2014you&#8217;re starting to control it.<\/p>\n\n\n\n<p><strong>Having trouble with your code?<\/strong>&nbsp;If you&#8217;ve tried to edit your list and the app stopped working, don&#8217;t panic! It usually means a comma or a quote mark is missing.&nbsp;<strong>Post a comment below with a snippet of your code<\/strong>, and I will help you find the error and get you back up and running.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this guide, I\u2019ll break down the three main parts of the free Celebrations app. Think of this as a map of the software. For many of you, the code inside that&nbsp;.html&nbsp;file looks like a jumble of symbols and brackets. You might be wondering:&nbsp;&#8220;What is actually happening in there? And can I change things without [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-246","post","type-post","status-publish","format-standard","hentry","category-guides"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/beginnerprojects.com\/cms\/wp-json\/wp\/v2\/posts\/246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beginnerprojects.com\/cms\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/beginnerprojects.com\/cms\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/beginnerprojects.com\/cms\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/beginnerprojects.com\/cms\/wp-json\/wp\/v2\/comments?post=246"}],"version-history":[{"count":3,"href":"https:\/\/beginnerprojects.com\/cms\/wp-json\/wp\/v2\/posts\/246\/revisions"}],"predecessor-version":[{"id":312,"href":"https:\/\/beginnerprojects.com\/cms\/wp-json\/wp\/v2\/posts\/246\/revisions\/312"}],"wp:attachment":[{"href":"https:\/\/beginnerprojects.com\/cms\/wp-json\/wp\/v2\/media?parent=246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beginnerprojects.com\/cms\/wp-json\/wp\/v2\/categories?post=246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beginnerprojects.com\/cms\/wp-json\/wp\/v2\/tags?post=246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}