<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aida El Kouri</title>
    <description>The latest articles on DEV Community by Aida El Kouri (@booleanings).</description>
    <link>https://dev.to/booleanings</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F845761%2F4bf1a7d0-09cb-411c-8ae0-16ef37352085.jpeg</url>
      <title>DEV Community: Aida El Kouri</title>
      <link>https://dev.to/booleanings</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/booleanings"/>
    <language>en</language>
    <item>
      <title>Redesigning Layout / Git setup - Day 5(ish) of coding</title>
      <dc:creator>Aida El Kouri</dc:creator>
      <pubDate>Mon, 29 Aug 2022 02:17:43 +0000</pubDate>
      <link>https://dev.to/booleanings/redesigning-layout-git-setup-day-5ish-of-coding-1gig</link>
      <guid>https://dev.to/booleanings/redesigning-layout-git-setup-day-5ish-of-coding-1gig</guid>
      <description>&lt;p&gt;Back after a minute hiatus, I had some time today to really sit down and work on the friend manager app. &lt;/p&gt;

&lt;p&gt;I decided last time I want to try something new with the layout resembling a computer desktop, with icons that can be moved around and a status bar of some sort. &lt;/p&gt;

&lt;p&gt;Accomplished:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set the project up on &lt;a href="https://github.com/booleanings/friend-mgr"&gt;git&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Created new branch for the desktop view changes&lt;/li&gt;
&lt;li&gt;Moved around the friends list to be the full width

&lt;ul&gt;
&lt;li&gt;Still trying to figure out how I can use z-index to layer the windows on top of the desktop.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Created new status/toolbar component fixed at the bottom with save button and search bar 

&lt;ul&gt;
&lt;li&gt;Want to animate these more in the future and make them more compact.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Getting a little bit closer to what I want.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pjELLL2w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jdnnflk9ki78groytpgx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pjELLL2w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jdnnflk9ki78groytpgx.png" alt="Image description" width="880" height="975"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For next time, I want to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Figure out layering of the windows on top of the desktop&lt;/li&gt;
&lt;li&gt;Create bounds for the draggable windows - so they can't be dragged onto the status bar&lt;/li&gt;
&lt;li&gt;Style the status bar better - possibly with a clock &amp;amp; icon&lt;/li&gt;
&lt;li&gt;Get context menus working&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>One good feat is worth a 1000 bug fixes - day 4 of coding</title>
      <dc:creator>Aida El Kouri</dc:creator>
      <pubDate>Tue, 23 Aug 2022 04:55:59 +0000</pubDate>
      <link>https://dev.to/booleanings/one-good-feat-is-worth-a-1000-bug-fixes-day-4-of-coding-4gh9</link>
      <guid>https://dev.to/booleanings/one-good-feat-is-worth-a-1000-bug-fixes-day-4-of-coding-4gh9</guid>
      <description>&lt;p&gt;Last I posted, I was struggling with making a working context menu. The requirements sound basic but I've been debating whether to use svelte actions or listeners to make it happen.&lt;/p&gt;

&lt;p&gt;Essentially:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When users right click on a friend in the friend list window, they will be able to edit or delete.&lt;/li&gt;
&lt;li&gt;When they right click on a blank space, they will be able to create a new friend.&lt;/li&gt;
&lt;li&gt;When they right click on an area without context menu ability, nothing should happen&lt;/li&gt;
&lt;li&gt;Only one context menu should be open at a time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm still considering how to do this. One solution could be to treat the whole window like a desktop instead. So when they right click on a "friend" icon, it does the right actions. When you right click on any other space, it would have the new friend select.&lt;/p&gt;

&lt;p&gt;This might be way easier and funner of a design. Especially if you could drag drop the friends around in groups in the way macOS desktop works.&lt;/p&gt;

&lt;p&gt;Sadly this requires a pivot, and before I can do that, I need to make sure my code is squeaky clean. However, for today I just wanted to focus on some other low hanging fruit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Accomplished
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Created close window functionality&lt;/li&gt;
&lt;li&gt;Added sorting (sort by location and friends) by storing a sort method in the store and having a derived store variable for sortedFriends&lt;/li&gt;
&lt;li&gt;Added filtering for people by search keyword so you can search by name or location&lt;/li&gt;
&lt;li&gt;Added more properties for gift ideas, friendiversary, notes &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ROV5ZEUI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c6cojhwu4s3whjmwnmxq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ROV5ZEUI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c6cojhwu4s3whjmwnmxq.png" alt="Image description" width="880" height="1003"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Note on missed days
&lt;/h3&gt;

&lt;p&gt;Obviously the goal when you start any 100 day consecutive challenge is to not miss a day. The idea with this challenge being that I transform into a Lebron James of svelte at the end of the 100 days. But truthfully, I haven't coded for fun in a long time. Doing it on weekends still feels like something I should report to HR, so I'm trying to take it as lightly as possible. Still keeping up with it, but no resetting if I miss a day (or two but no more!! 😡) /excuses&lt;/p&gt;

</description>
      <category>svelte</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>Lazy Day, Blockers, Bleh - Day (3&amp;4) of Coding</title>
      <dc:creator>Aida El Kouri</dc:creator>
      <pubDate>Fri, 19 Aug 2022 23:09:00 +0000</pubDate>
      <link>https://dev.to/booleanings/lazy-day-blockers-bleh-day-34-of-coding-5do6</link>
      <guid>https://dev.to/booleanings/lazy-day-blockers-bleh-day-34-of-coding-5do6</guid>
      <description>&lt;h3&gt;
  
  
  Yesterday
&lt;/h3&gt;

&lt;p&gt;I'm feeling pretty under the weather today (right only on day 3 lol), so thought I'd relax and take things a little easy today.&lt;/p&gt;

&lt;p&gt;Done!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;played around with the styling more&lt;/li&gt;
&lt;li&gt;went through more svelte tutorials&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Today
&lt;/h3&gt;

&lt;p&gt;I felt reinvigorated (if not a bit guilty) starting fresh, with lots of new features to work on.&lt;/p&gt;

&lt;p&gt;One of my main goals today was to implement context menus to make certain actions more available. The plan is to put "edit", "delete", and "create" button into these. Sadly, the solution was not as easy as a prepackaged library, and I'm still facing some blockers.&lt;/p&gt;

&lt;p&gt;I wanted to do this as simply as possible, so I'm just doing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div on:contextmenu={setPosition}
 Aida
&amp;lt;/div&amp;gt;

&amp;lt;div class="context-menu" style="top: pos.x; left: pos.y"&amp;gt;
  &amp;lt;button&amp;gt;Edit&amp;lt;/button&amp;gt;
&amp;lt;/div
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This succeeds in making the context menu come up, but has an issue. The context menu needs to close whenever another one opens so the logic can't be contained in just one Friend component. This means I'll need to lift up the context menu state to track which one is open. It will also be a challenge if they select a place from the page outside or regular click somewhere else.&lt;/p&gt;

&lt;p&gt;Also because I was planning on having clicking on a empty space be the "Create" context menu, I'll need to have two different context menu trackers going. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tXLwi4OD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fjswbxocwosngnn4chd1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tXLwi4OD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fjswbxocwosngnn4chd1.png" alt="Image description" width="417" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For now, I'm happy with my basic buggy lil context menu, but will work on it this next week. &lt;/p&gt;

</description>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>Drag n Drop / Rock n Roll - (2/100)</title>
      <dc:creator>Aida El Kouri</dc:creator>
      <pubDate>Wed, 17 Aug 2022 22:28:00 +0000</pubDate>
      <link>https://dev.to/booleanings/ux-design-and-other-scary-stories-2100-5h9</link>
      <guid>https://dev.to/booleanings/ux-design-and-other-scary-stories-2100-5h9</guid>
      <description>&lt;p&gt;I should mention that I did a little bit more work after my post yesterday to empty out my creative gas tank, so I &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;added the delete functionality&lt;/li&gt;
&lt;li&gt;added the edit functionality&lt;/li&gt;
&lt;li&gt;did a little bit of styling to the box&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And ta-da....&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OYzK4p4Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/funegrluy68khy1a1f9q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OYzK4p4Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/funegrluy68khy1a1f9q.png" alt="Image description" width="369" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay, I'll admit UX should not be this terrifying for me. In the past, all my personal projects all eventually develop the same style though (b/c of what I'm comfortable with and what I like). I'm not a big fan of wireframing for fun projects, but I did want to at least gather some inspiration.&lt;/p&gt;

&lt;p&gt;I love the retro OS pastel look of boxy panels, and would love for the whole app to be configurable so you can have multiple "friends" open at one time, use context menus with right click, and have folders or groups for friends. It even reminds me of the God prayer program from Bruce Almighty. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DN70vX-S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zdowcvrf5p0mkwftmyay.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DN70vX-S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zdowcvrf5p0mkwftmyay.png" alt="Image description" width="672" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In order to do this, it seems necessary to have a drag-drop layout aspect. After weighing building my own with Svelte (which I think would be a really fun project for learning) or using a pre-built library, I chose to go with the latter. One of my goals with these 100 days is to finish a project, which I'd like to start with this site.&lt;/p&gt;

&lt;p&gt;I did get nervous very quickly finding a library as most of them were for a more drag grid layout, which isn't exactly what I need. Also reading code in svelte is unfamiliar to me right now, and building a whole drag drop action was obviously intimidating. Luckily I found @&lt;a href="https://www.npmjs.com/package/@neodrag/svelte"&gt;neodrag&lt;/a&gt; which ended up being a great option. I did a little test run with some fake objects:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--R62Gr2jS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8awjhgxio06tfid2tpa4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--R62Gr2jS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8awjhgxio06tfid2tpa4.png" alt="Image description" width="729" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So end of day 2 and it's looking a lot better!&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CUdQ8t7d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zvh76seb080dqllhtik2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CUdQ8t7d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zvh76seb080dqllhtik2.png" alt="Image description" width="568" height="659"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Accomplished 🎉&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create drag/drop windows &lt;/li&gt;
&lt;li&gt;Use svelte:component to dynamically create windows for editing, list, creating friends&lt;/li&gt;
&lt;li&gt;Use eventDispatcher to allow nested elements to create and edit windows at the top level&lt;/li&gt;
&lt;li&gt;Add ids to friends (this needs polishing but will be helpful for future)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next steps are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Styling (which I thought I'd have more time for)&lt;/li&gt;
&lt;li&gt;Common close window functionality &lt;/li&gt;
&lt;li&gt;Context menu &lt;/li&gt;
&lt;li&gt;Redesign friends list&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>Svelte (Superstar ⭐️) - Day 1/100 of Coding</title>
      <dc:creator>Aida El Kouri</dc:creator>
      <pubDate>Tue, 16 Aug 2022 21:40:38 +0000</pubDate>
      <link>https://dev.to/booleanings/svelte-superstar-day-1100-of-coding-526c</link>
      <guid>https://dev.to/booleanings/svelte-superstar-day-1100-of-coding-526c</guid>
      <description>&lt;p&gt;Gone are my baby dev days of hackathons and excitement over what I believed would be the next Facebook/Microsoft breakthrough. Working a 9-5 job as a developer is about as amazing any mostly indoor existence could be, but I miss coding for fun more than anything. I want to end the next 100 days (+/- 5 depending on procrastination) as a better, more involved developer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter....100 Days of Code.
&lt;/h2&gt;

&lt;p&gt;I've had this idea in my head recently of a friend manager. So many of my friends have quit social media (including me), and it'd be nice to have a way of remembering different connections I've made over the years.&lt;/p&gt;

&lt;p&gt;Dev Log:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Setup new svelte project&lt;/li&gt;
&lt;li&gt;Completed most of the tutorials&lt;/li&gt;
&lt;li&gt;Created a feature list &lt;/li&gt;
&lt;li&gt;Used local storage to save friends locally + with Svelte Stores&lt;/li&gt;
&lt;li&gt;Created new friend form&lt;/li&gt;
&lt;li&gt;Created friends list component&lt;/li&gt;
&lt;li&gt;Created ToggleContainer (higher order) to hide components when not needed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3RzjjyVA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3ftl148rezx5j4t3wirg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3RzjjyVA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3ftl148rezx5j4t3wirg.png" alt="Image description" width="381" height="665"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stopping place: I am struggling with whether to create 2 separate creation/editing components. Using an id in the store to track who I'm editing makes sense, but I have two options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pass in the "friend" properties as props to the CreateEdit component&lt;/li&gt;
&lt;li&gt;Use the "editFriendID" from the store to get the properties and pre-load the form with the right options.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>100daysofcode</category>
    </item>
  </channel>
</rss>
