<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xml:lang="en-us" xmlns:atom="http://www.w3.org/2005/Atom"><channel><copyright>© Markus Le</copyright><description>Those are my projects</description><language>en-us</language><lastBuildDate>Sun, 01 Mar 2026 14:18:10 +0930</lastBuildDate><link>http://anhkhoa.dev/project/</link><atom:link href="http://anhkhoa.dev/project/rss.xml" hreflang="en-us" rel="self" type="application/rss+xml"/><atom:link href="http://anhkhoa.dev/project/" hreflang="en-us" rel="alternate" type="text/html"/><atom:link href="http://anhkhoa.dev/project/rss.xml" hreflang="en-us" rel="alternate" type="application/rss+xml"/><title>Markus Le</title><item><description><![CDATA[<p>🚀 <strong>Built in 34 Hours</strong><br>🏆 BIG Hackathon Project<br>✨ Theme: <em>Merger</em></p><blockquote><p>“Merge your study. Meet your people.”</p></blockquote><hr><h2 id=-project-overview>🌟 Project Overview</h2><p>NexusS was built in under <strong>34 hours</strong> for the <a href=https://big.devpost.com/ rel=external>BIG Hackathon</a>
, hosted by the <a href=https://csclub.org.au/ rel=external>Computer Science Club (CS Club), University of Adelaide</a>
and the <a href=https://usasa.sa.edu.au/clubs/join/upc/ rel=external>UniSA Programming Community (UPC), University of South Australia</a>
.</p><p>The idea is simple:</p><p>NexusS helps students <strong>merge independent study sessions</strong> by connecting them with others nearby.</p><h3 id=-with-nexuss-students-can>✨ With NexusS, students can:</h3><ul><li>🔎 <strong>Discover nearby study sessions</strong> based on courses or interests</li><li>📍 <strong>Drop by and join</strong> sessions happening around them</li><li>📝 <strong>Host a session</strong> by marking their location and inviting others</li></ul><p>NexusS helps university students find study buddies — and maybe even new friends.</p><hr><h2 id=-navigating-the-ui>🗺️ Navigating the UI</h2><ol><li>📍 See your location (red marker) and nearby study sessions (ducks 🦆).</li><li>🦆 Click a duck to view:<ul><li>Description</li><li>Capacity</li><li>Time</li><li>Location</li><li>Image</li><li>Tags</li></ul></li><li>➕ Create your own study session using the form.</li><li>💡 Receive helpful suggestions for nearby sessions.</li><li>❓ Check the FAQ if you ever feel lost.</li></ol><p>👉 Try it here: <a href=https://nexuss2025.vercel.app/ rel=external>https://nexuss2025.vercel.app/</a></p><hr><h2 id=-tech-stack>🛠️ Tech Stack</h2><h3 id=-frontend>🎨 Frontend</h3><ul><li><strong>Next.js</strong></li><li><strong>TypeScript</strong></li><li><strong>Shadcn UI</strong></li><li><strong>Tailwind CSS</strong></li></ul><h3 id=-backend>🗄️ Backend</h3><ul><li><strong>MongoDB</strong></li><li><strong>Supabase</strong> (image storage)</li><li><strong>Vercel</strong> (deployment)</li></ul><h3 id=-other-tools>🧰 Other Tools</h3><ul><li><strong>MapLibre</strong> (interactive maps)</li><li><strong>MapTiler Cloud</strong> (map styling & data source)</li><li><strong>Zod</strong> (form validation)</li></ul><hr><h2 id=-key-features>🚀 Key Features</h2><ul><li>📚 Browse nearby study sessions by course or interest</li><li>📍 Share your current study location to invite others</li><li>📱 Fully responsive and mobile-friendly</li></ul><hr><h2 id=-installation>💻 Installation</h2><div class=highlight><pre tabindex=0 style=background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>npm install
</span></span><span style=display:flex><span>npm run dev
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>Then open:
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>http://localhost:3000
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>---
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#57606a>## ⚔️ Challenges</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>One team member had to leave early due to health issues but still contributed remotely to <span style=color:#6639ba>help</span> us <span style=color:#6639ba>complete</span> the project.
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>Hackathons <span style=color:#6639ba>test</span> not only technical skills, but also teamwork and adaptability.
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>---
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#57606a>## 🔮 Future Improvements</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>- ⚡ Improve performance <span style=color:#cf222e>for</span> large-scale usage  
</span></span><span style=display:flex><span>- 👥 Handle many simultaneous users and sessions smoothly  
</span></span><span style=display:flex><span>- 🔔 Add smarter matching and notifications  
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>---
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#57606a>## 👥 Project Team</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>- Anh Khoa Le — https://github.com/markusle56  
</span></span><span style=display:flex><span>- Ngoc Han Ngo — https://github.com/ngongochan  
</span></span><span style=display:flex><span>- Shaurya Jain — https://github.com/Omniologist  
</span></span><span style=display:flex><span>- Tran Duy Bao Nguyen — https://github.com/TSSniper349  
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>---
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#57606a>## 🎉 Fun Facts</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>- 🏢 The name NexusS came from the Nexus Building, where we spent most of the hackathon.  
</span></span><span style=display:flex><span>- 📖 The word “nexus” means a central connection — exactly what our app creates.</span></span></code></pre></div>]]></description><guid isPermaLink="false">tag:anhkhoa.dev,2026-03-01:/project/nexuss/</guid><link>http://anhkhoa.dev/project/nexuss/</link><atom:link href="http://anhkhoa.dev/project/nexuss/" hreflang="en-us" rel="alternate" type="text/html"/><pubDate>Sun, 01 Mar 2026 14:18:10 +0930</pubDate><title>🦆 NexusS — Merging Study Sessions</title></item><item><description><![CDATA[<div class=paige-shortcode-figure><div class="align-items-center d-flex float-end h-100 justify-content-center ms-4"><figure class=mb-0><div class="d-flex justify-content-center text-center"><div class=paige-shortcode-image><img class="img-fluid rounded" crossorigin=anonymous height=1674 referrerpolicy=no-referrer src=http://anhkhoa.dev/vegahed.7a2b8eced6d5d9c157cc920063813cda2c65ccd6a057cd8534a14759743ac225.png style=height:auto;width:30rem width=2938></div></div></figure></div></div><h1 id=-project-overview>📋 Project Overview</h1><p>VegaHed is a full-stack web application inspired by the <em>One Piece</em> character Vegapunk, who consumed a fruit that allows him to remember everything he has ever read. However, the more knowledge he acquires, the larger his head becomes. With his intelligence, he invented Punk Record, a system that can store his knowledge as a server and link with his brain, allowing him to keep learning without worrying about the physical limits of his head.</p><p><strong>VegaHed</strong> acts as a personal &ldquo;Punk Record,&rdquo; where users can paste links such as YouTube videos, TikTok posts, or Facebook posts. The system automatically categorizes them, making it easy to review information without searching across multiple platforms.</p><hr><h2 id=-project-goals--objectives>🎯 Project Goals & Objectives</h2><ul><li><strong>Primary Goal:</strong> Store all videos and post URLs that users consider important and want to review in the future.</li><li><strong>Secondary Goals:</strong> Automatically categorize saved information and improve the efficiency of revision.</li></ul><hr><h2 id=hahahugoshortcode5s1hbhb><div class=paige-shortcode-figure><div class="align-items-center d-flex float-end h-100 justify-content-center ms-4"><figure class=mb-0><div class="d-flex justify-content-center text-center"><div class=paige-shortcode-image><img class="img-fluid rounded" crossorigin=anonymous height=1746 referrerpolicy=no-referrer src=http://anhkhoa.dev/vegahed_dashboard.4ad624820ceb025abde83cb3b34c9f7027c6dc2c1ec458490ad595c18a7aaf7b.png style=height:auto;width:35rem width=2938></div></div></figure></div></div></h2><h2 id=-technical-specifications>🛠️ Technical Specifications</h2><table><thead><tr><th><strong>Layer</strong></th><th><strong>Technologies</strong></th><th><strong>Notes</strong></th></tr></thead><tbody><tr><td>Frontend</td><td>ReactJS, Tailwind CSS</td><td>Built with ReactJS for UI logic; TailwindCSS used for fast, responsive styling.</td></tr><tr><td>Backend</td><td>NextJS, Auth.js</td><td>NextJS handles fullstack routing and API endpoints; Auth.js manages authentication and authorization.</td></tr><tr><td>Database</td><td>MongoDB Atlas</td><td>Cloud-hosted MongoDB Atlas used for scalable, secure database management.</td></tr><tr><td>Deployment</td><td>TBD</td><td>Likely Vercel for seamless NextJS deployment; alternatives under consideration.</td></tr></tbody></table><hr><div class=paige-shortcode-figure><div class="align-items-center d-flex float-start h-100 justify-content-center me-4"><figure class=mb-0><div class="d-flex justify-content-center text-center"><div class=paige-shortcode-image><img class="img-fluid rounded" crossorigin=anonymous height=890 referrerpolicy=no-referrer src=http://anhkhoa.dev/vegahed-color.13c097f3c3019eacaaa5e9c804c2b31f7cf71a3d8d12bc95e06f75958751d29e.png style=height:auto;width:16rem width=1068></div></div></figure></div></div><h2 id=-design-resources>🎨 Design Resources</h2><ul><li><strong>Brand Guidelines:</strong> Logo (self-designed)</li><li><strong>Color Palette:</strong></li></ul><table><thead><tr><th>#FFFFFF</th><th>#FFF6EA</th><th>#7C0A02</th><th>#ED2939</th><th>#FF5757</th></tr></thead><tbody></tbody></table><ul><li><strong>Typography:</strong> Rowdies, Maven Pro</li><li><strong>Mockups:</strong> <a href=https://www.canva.com/design/DAGtndnALKI/xU_uTeM6EHbHLOA0vYnKQw/edit rel=external>Canva</a></li></ul><hr><h2 id=-main-functions>🔍 Main Functions</h2><ul><li>Login / Sign Up / Sign Out</li><li>Google & Facebook Authentication</li><li>Homepage</li><li>Dashboard</li><li>LLM-based classifiers</li><li>API integration</li><li>Cookies / Session handling</li><li>Profile page</li><li>Passkey login (planned)</li></ul><hr>]]></description><guid isPermaLink="false">tag:anhkhoa.dev,2025-08-26:/project/vegahed/</guid><link>http://anhkhoa.dev/project/vegahed/</link><atom:link href="http://anhkhoa.dev/project/vegahed/" hreflang="en-us" rel="alternate" type="text/html"/><pubDate>Tue, 26 Aug 2025 13:07:03 ACST</pubDate><title>VegaHed</title></item><item><description><![CDATA[<h1 id=project-overview>Project Overview</h1><div class=paige-shortcode-figure><div class="align-items-center d-flex float-end h-100 justify-content-center ms-4"><figure class=mb-0><div class="d-flex justify-content-center text-center"><div class=paige-shortcode-image><img class="img-fluid rounded" crossorigin=anonymous height=1674 referrerpolicy=no-referrer src=http://anhkhoa.dev/myevent-1.7436cc2432e73c06f2e65a492703dafbdd86913aeb56bef624e7385bad070413.png style=height:auto;width:35rem width=2928></div></div></figure></div></div><p>Every day, the University of Adelaide and its student clubs host dozens of events-from social mixers and pub crawls to career expos and skill-building workshops. These activities are scattered across Instagram, Facebook and various faculty websites, making it difficult for students-especially first‑years - to stay informed. As a result, many valuable opportunities are missed.</p><p><strong>MyEvents</strong> is a centralized, university‑focused platform (think Eventbrite for Adelaide Uni) that enables verified students and staff to:</p><ul><li>Discover and browse upcoming events</li><li>Search, filter and explore rich event details</li><li>Register or purchase (free and on-site paid) tickets</li><li>Create and publish their own events</li></ul><p>With MyEvents, everyone in our community can easily find and participate in the experiences that matter to them.</p><hr><h2 id=tech-stack>Tech Stack</h2><ul><li><strong>Front End:</strong> Vue.js</li><li><strong>Back End:</strong> Node.js, MySQL, Passport.js</li></ul><hr><div class=paige-shortcode-figure><div class="align-items-center d-flex float-end h-100 justify-content-center ms-4"><figure class=mb-0><div class="d-flex justify-content-center text-center"><div class=paige-shortcode-image><img class="img-fluid rounded" crossorigin=anonymous height=1664 referrerpolicy=no-referrer src=http://anhkhoa.dev/myevent-2.4608ca58634facbdc141f5a861d12518cfbb5c4e43cc8062ffd6a791ee89a586.png style=height:auto;width:40rem width=2928></div></div></figure></div></div><h2 id=features--functionality>Features & Functionality</h2><h3 id=role-based-features>Role-Based Features</h3><table><thead><tr><th>Feature</th><th style=text-align:center>Admin</th><th style=text-align:center>User</th><th style=text-align:center>Visitor</th></tr></thead><tbody><tr><td><strong>Admin Dashboard</strong></td><td style=text-align:center>✓</td><td style=text-align:center></td><td style=text-align:center></td></tr><tr><td><strong>User Management</strong></td><td style=text-align:center>✓</td><td style=text-align:center></td><td style=text-align:center></td></tr><tr><td>• Search & Filter Users</td><td style=text-align:center>✓</td><td style=text-align:center></td><td style=text-align:center></td></tr><tr><td>• List All Users</td><td style=text-align:center>✓</td><td style=text-align:center></td><td style=text-align:center></td></tr><tr><td>• Add & Edit Users</td><td style=text-align:center>✓</td><td style=text-align:center></td><td style=text-align:center></td></tr><tr><td>• Assign Admin Role</td><td style=text-align:center>✓</td><td style=text-align:center></td><td style=text-align:center></td></tr><tr><td>• Delete Users</td><td style=text-align:center>✓</td><td style=text-align:center></td><td style=text-align:center></td></tr><tr><td><strong>Event Management</strong></td><td style=text-align:center></td><td style=text-align:center></td><td style=text-align:center></td></tr><tr><td>• Search & Filter Events</td><td style=text-align:center>✓</td><td style=text-align:center>✓</td><td style=text-align:center>✓</td></tr><tr><td>• List All Events</td><td style=text-align:center>✓</td><td style=text-align:center>✓</td><td style=text-align:center>✓</td></tr><tr><td>• Create & Edit Events</td><td style=text-align:center>✓</td><td style=text-align:center>✓</td><td style=text-align:center></td></tr><tr><td>• Upload Event Images</td><td style=text-align:center>✓</td><td style=text-align:center>✓</td><td style=text-align:center>✓</td></tr><tr><td>• Delete Events</td><td style=text-align:center>✓</td><td style=text-align:center></td><td style=text-align:center></td></tr><tr><td><strong>Event Browsing & Ticketing</strong></td><td style=text-align:center></td><td style=text-align:center></td><td style=text-align:center></td></tr><tr><td>• Browse & View Details</td><td style=text-align:center>✓</td><td style=text-align:center>✓</td><td style=text-align:center>✓</td></tr><tr><td>• Filter by Type & Date</td><td style=text-align:center>✓</td><td style=text-align:center>✓</td><td style=text-align:center>✓</td></tr><tr><td>• Ticket Quantity Control</td><td style=text-align:center>✓</td><td style=text-align:center>✓</td><td style=text-align:center>✓</td></tr><tr><td>• Purchase Tickets</td><td style=text-align:center>✓</td><td style=text-align:center>✓</td><td style=text-align:center>✓</td></tr><tr><td><strong>Authentication & Profiles</strong></td><td style=text-align:center></td><td style=text-align:center></td><td style=text-align:center></td></tr><tr><td>• Local Signup & Login</td><td style=text-align:center></td><td style=text-align:center>✓</td><td style=text-align:center>✓</td></tr><tr><td>• Google OAuth Integration</td><td style=text-align:center></td><td style=text-align:center>✓</td><td style=text-align:center>✓</td></tr><tr><td>• Profile Management</td><td style=text-align:center>✓</td><td style=text-align:center>✓</td><td style=text-align:center></td></tr></tbody></table><hr><h2 id=security--quality>Security & Quality</h2><ul><li><strong>Session Management:</strong> Secure cookies, session timeouts and logout handling</li><li><strong>Input Validation & Sanitization:</strong> Protection against SQL injection, XSS and other attacks</li><li><strong>Password Security:</strong> Bcrypt hashing and complexity enforcement</li><li><strong>Role-Based Access Control:</strong> Fine‑grained permissions on UI and API endpoints</li><li><strong>Password Strength Meter:</strong> Real‑time feedback during registration</li><li><strong>Email Notifications:</strong> Automated welcome messages and ticket confirmations</li></ul><hr><h2 id=known-limitations>Known Limitations</h2><ul><li><strong>Forgot Password:</strong> UI scaffolded; backend flow pending</li><li><strong>Online Payments:</strong> Currently cash‑only on-site; no integrated gateway</li><li><strong>Scalability:</strong> Single‑region MySQL; consider sharding or read‑replicas under heavy load</li></ul><hr><h2 id=project-team>Project Team</h2><table><thead><tr><th>Name</th><th>Role</th><th>GitHub Handle</th></tr></thead><tbody><tr><td><strong>Anh Khoa Le</strong></td><td>Backend Developer</td><td><a href=https://github.com/markusle56 rel=external>markusle56</a></td></tr><tr><td><strong>Ngoc Han Ngo</strong></td><td>Frontend Developer</td><td><a href=https://github.com/ngongochan rel=external>ngongochan</a></td></tr><tr><td><strong>Luong Phuoc Nguyen</strong></td><td>Frontend Developer</td><td><a href=https://github.com/lphuoc16 rel=external>lphuoc16</a></td></tr></tbody></table>]]></description><guid isPermaLink="false">tag:anhkhoa.dev,2025-07-01:/project/myevents/</guid><link>http://anhkhoa.dev/project/myevents/</link><atom:link href="http://anhkhoa.dev/project/myevents/" hreflang="en-us" rel="alternate" type="text/html"/><pubDate>Tue, 01 Jul 2025 14:18:10 +0930</pubDate><title>MyEvents</title></item><item><description>&lt;p>This portfolio was built using Hugo and Paige as an experiment to explore a new tool.&lt;/p></description><guid isPermaLink="false">tag:anhkhoa.dev,2025-07-01:/project/portfolio/</guid><link>http://anhkhoa.dev/project/portfolio/</link><atom:link href="http://anhkhoa.dev/project/portfolio/" hreflang="en-us" rel="alternate" type="text/html"/><pubDate>Tue, 01 Jul 2025 14:17:12 +0930</pubDate><title>Portfolio</title></item></channel></rss>