
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:base="https://www.imkhoi.com/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>KHOI</title>
    <link>https://www.imkhoi.com/</link>
    <atom:link href="https://www.imkhoi.com/feed.xml" rel="self" type="application/rss+xml" />
    <description>Khoi Nguyen - Software Engineer</description>
    <language>en</language>
    <item>
      <title>E-commerce CMS</title>
      <link>https://www.imkhoi.com/projects/ecommerce-cms/</link>
      <description>&lt;p&gt;This project was built as part of my &lt;a href=&quot;https://blog.imkhoi.com/posts/2024/03/learning-go-week-5/&quot; target=&quot;_blank&quot;&gt;Week 5 of learning Go&lt;/a&gt;. You can read the blog to learn about my motivation building this!&lt;/p&gt;
&lt;h1 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/ecommerce-cms/#features&quot;&gt;&lt;span&gt;Features&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Admin login page at &lt;domain&gt;/login.&lt;/domain&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Try the demo at &lt;a href=&quot;https://samplestore.khoiuna.info/login/&quot; target=&quot;_blank&quot;&gt;samplestore.khoiuna.info/login&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Login with username &lt;code&gt;admin&lt;/code&gt; &amp;amp; password &lt;code&gt;admin123&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Admin dashboard to add &amp;amp; edit products.&lt;/p&gt;
&lt;p&gt;Preorder notification through Discord.&lt;/p&gt;
&lt;h1 id=&quot;tech&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/ecommerce-cms/#tech&quot;&gt;&lt;span&gt;Tech&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Frontend:&lt;/strong&gt; Built with NextJS and TailwindCSS.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Backend:&lt;/strong&gt; Built with Golang, Go Fiber, Gorm and SQLite.&lt;/p&gt;
</description>
      <pubDate>Sun, 03 Mar 2024 00:00:00 +0000</pubDate>
      <dc:creator>Khoi Nguyen</dc:creator>
      <guid>https://www.imkhoi.com/projects/ecommerce-cms/</guid>
    </item>
    <item>
      <title>PlatoPunk</title>
      <link>https://www.imkhoi.com/projects/platopunk/</link>
      <description>&lt;p&gt;Read more on why and how I &lt;a href=&quot;https://blog.imkhoi.com/posts/2023/11/hosting-my-own-activitypub-server/&quot; target=&quot;_blank&quot;&gt;host my own ActivityPub server&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Wed, 26 Jul 2023 00:00:00 +0000</pubDate>
      <dc:creator>Khoi Nguyen</dc:creator>
      <guid>https://www.imkhoi.com/projects/platopunk/</guid>
    </item>
    <item>
      <title>LynkTrade</title>
      <link>https://www.imkhoi.com/projects/lynktrade/</link>
      <description>&lt;p&gt;As a developer, I encountered a recurring challenge – the clunkiness and complexity of existing website builders. These tools, while powerful, often posed a steep learning curve for non-tech-savvy users, particularly small business owners. This sparked the idea for LynkTrade, a platform designed to simplify the process of creating a website, empowering entrepreneurs to establish their online presence effortlessly. This led to the &lt;a href=&quot;https://twitter.com/khoiuna/status/1677539843931267072&quot; target=&quot;_blank&quot;&gt;launch of LynkTrade in Summer 2023&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&quot;problem&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/lynktrade/#problem&quot;&gt;&lt;span&gt;Problem&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Wix, Squarespace, and similar platforms were the go-to choices for many. However, for the average small business owner, navigating through these platforms felt akin to solving a puzzle. The need for a solution that streamlined the process became apparent, and thus, LynkTrade was born.&lt;/p&gt;
&lt;h1 id=&quot;solution&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/lynktrade/#solution&quot;&gt;&lt;span&gt;Solution&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The core philosophy behind LynkTrade was elegance in simplicity. I envisioned a platform where users could build their site in just 3 three steps.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sign Up:&lt;/strong&gt; LynkTrade kicks off with a straightforward onboarding process. Users can sign up and fill in their business name (and might be able to choose from a variety of professionally designed themes in the future).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Customize with Ease:&lt;/strong&gt; The heart of LynkTrade lies in its user-friendly customization options. No coding expertise required – users can effortlessly tailor their website to fit their brand, adding content and tweaking content with a few clicks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Go Live in Minutes:&lt;/strong&gt; The final step is as simple as hitting the ‘Publish’ button. In under two minutes, users transition from a concept to a live website – a game-changer for small businesses eager to establish their digital footprint.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id=&quot;result%3A-one-customer-at-a-time&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/lynktrade/#result%3A-one-customer-at-a-time&quot;&gt;&lt;span&gt;Result: One Customer at a Time&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The journey of LynkTrade hasn’t been without its challenges, but witnessing the platform’s impact on small businesses has been incredibly rewarding. One success story stands out – two customers who, thanks to LynkTrade, now effortlessly manages their online presence, paying a monthly subscription for the service.&lt;/p&gt;
&lt;p&gt;One of them knew about me on NextDoor. We met. I showed her the demo. She liked it and paid!&lt;/p&gt;
&lt;h1 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/lynktrade/#conclusion&quot;&gt;&lt;span&gt;Conclusion&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;I don’t know how far LynkTrade can go, but this project shows that sometimes, the most profound solutions emerge from simplicity.&lt;/p&gt;
</description>
      <pubDate>Tue, 27 Jun 2023 00:00:00 +0000</pubDate>
      <dc:creator>Khoi Nguyen</dc:creator>
      <guid>https://www.imkhoi.com/projects/lynktrade/</guid>
    </item>
    <item>
      <title>NFC Orange</title>
      <link>https://www.imkhoi.com/projects/nfcorange/</link>
      <description>&lt;p&gt;I blogged about this project. If interested, you can &lt;a href=&quot;https://blog.imkhoi.com/posts/2023/02/startup-at-uni/&quot; target=&quot;_blank&quot;&gt;read the blog here&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&quot;problem&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/nfcorange/#problem&quot;&gt;&lt;span&gt;Problem&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;NFC Orange addresses the inefficiencies of traditional career fairs by digitizing the process, eliminating the need for paper resumes, and providing a modern solution for students and recruiters to connect seamlessly.&lt;/p&gt;
&lt;h1 id=&quot;solution&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/nfcorange/#solution&quot;&gt;&lt;span&gt;Solution&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;We replace paper resumes with NFC cards that students can tap on recruiters’ phones to share their resumes. We also built a NFC reader that students could tap their card on. The reader would read the card and save it to the &lt;strong&gt;Recruiter dashboard&lt;/strong&gt; we built.&lt;/p&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;https://www.imkhoi.com/assets/images/recruiter-dashboard.webp&quot; alt=&quot;Recruiter Dashboard&quot; /&gt;
&lt;p&gt;&lt;sub&gt;NFC Orange’s Recruiter Dashboard&lt;/sub&gt;&lt;/p&gt;
&lt;p&gt;During the course of the project, we had added more features like adding the &lt;strong&gt;Analytics&lt;/strong&gt; feature for students to track how many times their profile has been viewed.&lt;/p&gt;
&lt;h1 id=&quot;team&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/nfcorange/#team&quot;&gt;&lt;span&gt;Team&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Worked in a team of two:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.linkedin.com/in/avish-yadav/&quot; target=&quot;_blank&quot;&gt;Avish Yadav&lt;/a&gt; — MBA in Global Business.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;tech-stack&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/nfcorange/#tech-stack&quot;&gt;&lt;span&gt;Tech stack&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Front end:&lt;/strong&gt; React, NextJS, Tailwind CSS.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Back end:&lt;/strong&gt; NodeJS, Express.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hardware:&lt;/strong&gt; &lt;a href=&quot;https://docs.particle.io/boron/&quot; target=&quot;_blank&quot;&gt;Particle Boron&lt;/a&gt; (for sending HTTP requests), RC522 (for reading the NFC cards).&lt;/p&gt;
&lt;h1 id=&quot;why-we-failed&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/nfcorange/#why-we-failed&quot;&gt;&lt;span&gt;Why we failed&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Even though we successfully raised fund for this project from our Dean of College Business &amp;amp; Technology, we failed due to lack of product market fit. We had some early user’s interests (by handing out free cards and posting on social media), but there was no word-of-mouth or engagement.&lt;/p&gt;
&lt;p&gt;Here is how often people tap their cards. As you can see, most of these came from me or Avish showing that not a lot have used it after receiving the cards.
&lt;img loading=&quot;lazy&quot; src=&quot;https://www.imkhoi.com/assets/images/nfcorange-sql.webp&quot; alt=&quot;NFC Orange user scanning data from PostgreSQL&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In addition, students still prefer taking their resume to the NFC cards, since recruiters have QR codes for students to scan and apply directly on their company’s job portal.&lt;/p&gt;
</description>
      <pubDate>Wed, 01 Mar 2023 00:00:00 +0000</pubDate>
      <dc:creator>Khoi Nguyen</dc:creator>
      <guid>https://www.imkhoi.com/projects/nfcorange/</guid>
    </item>
    <item>
      <title>ChekChat</title>
      <link>https://www.imkhoi.com/projects/chekchat/</link>
      <description>&lt;p&gt;ChekChat was my 1st attempt to build a startup. You can try the &lt;a href=&quot;https://chekchat.khoiuna.info/&quot; target=&quot;_blank&quot;&gt;live demo&lt;/a&gt; with these credentials or &lt;a href=&quot;https://chekchat.khoiuna.info/register&quot; target=&quot;_blank&quot;&gt;register&lt;/a&gt; for one:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Email: &lt;a href=&quot;mailto:john@example.com&quot;&gt;john@example.com&lt;/a&gt; — Password: John123456&lt;/li&gt;
&lt;li&gt;Email: &lt;a href=&quot;mailto:jane@example.com&quot;&gt;jane@example.com&lt;/a&gt; — Password: Jane123456&lt;/li&gt;
&lt;li&gt;Email: &lt;a href=&quot;mailto:ben@example.com&quot;&gt;ben@example.com&lt;/a&gt; — Password: Ben1234567&lt;/li&gt;
&lt;li&gt;Email: &lt;a href=&quot;mailto:tom@example.com&quot;&gt;tom@example.com&lt;/a&gt; — Password: Tom1234567&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;problem&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/chekchat/#problem&quot;&gt;&lt;span&gt;Problem&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Most team collaboration apps like Slack, Discord, Trello, etc. requires users to toggle between apps causing context switching.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For example, developers use Trello to work on a task, then go to Slack to discuss → Users have to toggle between Slack and Trello → Causes context switching.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;→ Context switching distracts developers to work on tasks.&lt;/p&gt;
&lt;h1 id=&quot;solution&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/chekchat/#solution&quot;&gt;&lt;span&gt;Solution&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Built an app that focused on tasks where users can chat in a room made for that specific task.&lt;/p&gt;
&lt;h1 id=&quot;team&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/chekchat/#team&quot;&gt;&lt;span&gt;Team&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Worked in a team of three to build the app.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/in/simon-hu-40b7341b8/&quot; target=&quot;_blank&quot;&gt;Simon Hu&lt;/a&gt; — MBA in Project Management&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/in/junnosuke-noiri-3369361b1/&quot; target=&quot;_blank&quot;&gt;Junnosuke Noiri&lt;/a&gt; — BBA in Computer Information Systems&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;tech-stack&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/chekchat/#tech-stack&quot;&gt;&lt;span&gt;Tech stack&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Coded the front end with React/NextJS, Redux, and Material UI hosted on Vercel.&lt;/p&gt;
&lt;p&gt;Built the back end with SocketIO and Express deployed to Heroku.&lt;/p&gt;
&lt;h1 id=&quot;why-we-failed&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/chekchat/#why-we-failed&quot;&gt;&lt;span&gt;Why we failed&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Our team lost commitment over time due to not involving users in the process. Actually, we built before validating.&lt;/p&gt;
&lt;p&gt;Seeing no validation was probably the biggest reason.&lt;/p&gt;
</description>
      <pubDate>Mon, 01 Mar 2021 00:00:00 +0000</pubDate>
      <dc:creator>Khoi Nguyen</dc:creator>
      <guid>https://www.imkhoi.com/projects/chekchat/</guid>
    </item>
    <item>
      <title>Shooting Numbers</title>
      <link>https://www.imkhoi.com/projects/shootingnum/</link>
      <description></description>
      <pubDate>Mon, 21 Sep 2020 00:00:00 +0000</pubDate>
      <dc:creator>Khoi Nguyen</dc:creator>
      <guid>https://www.imkhoi.com/projects/shootingnum/</guid>
    </item>
    <item>
      <title>Birthday Piano</title>
      <link>https://www.imkhoi.com/projects/birthdaypiano/</link>
      <description>&lt;p&gt;I also launched it on &lt;a href=&quot;https://www.producthunt.com/products/birthday-piano&quot; target=&quot;_blank&quot;&gt;Product Hunt&lt;/a&gt;. Check it out and upvote!&lt;/p&gt;
&lt;h1 id=&quot;the-story-behind&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/birthdaypiano/#the-story-behind&quot;&gt;&lt;span&gt;The story behind&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;During COVID, the whole university was in lockdown. Having too much spare time, I started to learn web dev: HTML, CSS and JavaScript.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;One of my early projects — &lt;a href=&quot;https://khoiuna.github.io/code_bros.github.io/&quot; target=&quot;_blank&quot;&gt;CodeBros&lt;/a&gt; — built with Bootstrap and jQuery.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I’ve always been in love with music so my original thought was if I could build a small simple piano with HTML and CSS. And, I realized I could! I was really proud of my CSS skill!&lt;/p&gt;
&lt;p&gt;I started to record piano notes from GarageBand and wrote the JS code to play the sound.&lt;/p&gt;
&lt;p&gt;Realizing my friend’s birthday coming up, I had the urge to finish the project and tried to make the piano play the &lt;em&gt;Happy Birthday&lt;/em&gt; song.&lt;/p&gt;
&lt;h1 id=&quot;the-result&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.imkhoi.com/projects/birthdaypiano/#the-result&quot;&gt;&lt;span&gt;The result&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;I created a piano that could play &lt;em&gt;Happy Birthday&lt;/em&gt; on the web! After finished playing the song, users could open a gift to see a motivational quote. However, the code was quite messy.&lt;/p&gt;
&lt;p&gt;Two years later, having more experience, I revisited the project and added SoundJS, ViteJS, TypeScript, and refactored the code to look nicer.&lt;/p&gt;
&lt;p&gt;Realizing this project could be for anyone to send a birthday message, I added the backend for users to customize their wish instead of a quote.&lt;/p&gt;
&lt;p&gt;Finally, I designed the icon for the site and launched on &lt;a href=&quot;https://www.producthunt.com/products/birthday-piano&quot; target=&quot;_blank&quot;&gt;Product Hunt&lt;/a&gt;!&lt;/p&gt;
</description>
      <pubDate>Fri, 17 Jul 2020 00:00:00 +0000</pubDate>
      <dc:creator>Khoi Nguyen</dc:creator>
      <guid>https://www.imkhoi.com/projects/birthdaypiano/</guid>
    </item>
  </channel>
</rss>
