{"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-24T23:49:08","modified_gmt":"2026-04-24T23:49:08","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&#8217;ll break down the three main parts of the free <a href=\"https:\/\/beginnerprojects.com\/apps\/celebrations-app.html\">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: &#8220;What is actually happening in there? And can I change things without breaking it?&#8221;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. The &#8220;Paint &amp; Polish&#8221; (The CSS Section)<\/h2>\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>\ud83d\udca1&nbsp;<strong>Pro Tip:<\/strong>&nbsp;If you are happy with how the app looks, then you can completely ignore this section. 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: <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<h2 class=\"wp-block-heading\">2. The &#8220;Skeleton&#8221; (The HTML Body)<\/h2>\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 <\/strong>portion.<\/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:<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-11-background-color has-background\"><code>const celebrations = &#91;\n  { name: \"Name_1\", type: \"Birthday\", date: \"1963-09-05T00:00:00\", notes: \"Don't Email. Call 000.000.1234 instead. \" },\n  { name: \"Name_2\", type: \"Birthday\", date: \"1961-12-19T00:00:00\", notes: \"Send flowers.\" }\n];\n<\/code><\/pre>\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\" \/><\/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<h2 class=\"wp-block-heading\">3. The &#8220;Brain&#8221; (The JavaScript Section)<\/h2>\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;<em>active<\/em>. It is the &#8220;Brain&#8221; that performs the following logic:<\/p>\n\n\n\n<p><strong>The Math:<\/strong>&nbsp;It looks at today&#8217;s date, looks at the birthday, and calculates exactly how many days are left.<\/p>\n\n\n\n<p><strong>The Sorting:<\/strong>&nbsp;When you click &#8220;Name&#8221; or &#8220;Days Until,&#8221; the JS instantly rearranges the list for you. The sorting works by:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Clicking &#8220;Name&#8221; sorts alphabetically from A to Z<\/li>\n\n\n\n<li>Clicking &#8220;Days Until&#8221; sorts from fewest to most days remaining<\/li>\n<\/ul>\n\n\n\n<p><strong>The Alert System:<\/strong>&nbsp;It decides which color tag to apply. If the math results in 3 or less days, the JS tells the CSS to turn the tag <mark style=\"background-color:rgba(0, 0, 0, 0);color:#cf2e2e\" class=\"has-inline-color\"><strong>Red<\/strong><\/mark>. If 4-7 days, it turns <mark style=\"background-color:rgba(0, 0, 0, 0);color:#ff6900\" class=\"has-inline-color\"><strong>Orange<\/strong><\/mark>. More than 7 days, it&#8217;s <mark style=\"background-color:rgba(0, 0, 0, 0);color:#00d084\" class=\"has-inline-color\"><strong>Green<\/strong><\/mark>.<\/p>\n\n\n\n<p><em>\ud83d\udca1&nbsp;<strong>Pro Tip:<\/strong>&nbsp;This is the perfect place to experiment with AI. Try pasting a section into an AI and asking: &#8220;Can you change this for me (be descriptive)?&#8221;<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Summary: <strong>The Big Picture<\/strong><\/h2>\n\n\n\n<p>To put it simply, your app is a team of three:<\/p>\n\n\n\n<p><strong>HTML<\/strong>&nbsp;builds the info table.&nbsp;<strong>CSS<\/strong>&nbsp;makes the app look professional.&nbsp;<strong>JavaScript<\/strong>&nbsp;does the math and presents the data.<\/p>\n\n\n\n<p><em>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.<\/em><\/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. Post a comment below with a snippet of your code, and I will help you find the error and get you back up and running.<\/p>\n\n\n\n<p><a href=\"https:\/\/beginnerprojects.com\/apps\/celebrations-app.html\">You can test the app in your browser right now<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this guide, I&#8217;ll 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: &#8220;What is actually happening in there? And can I change things [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_ecmd_meta_description":"Learn how to customize and use the free Celebrations app that tracks birthdays and anniversaries, with this detailed guide on HTML, CSS, and JavaScript sections","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":6,"href":"https:\/\/beginnerprojects.com\/cms\/wp-json\/wp\/v2\/posts\/246\/revisions"}],"predecessor-version":[{"id":359,"href":"https:\/\/beginnerprojects.com\/cms\/wp-json\/wp\/v2\/posts\/246\/revisions\/359"}],"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}]}}