<?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: Micea Christian</title>
    <description>The latest articles on DEV Community by Micea Christian (@chrismicea).</description>
    <link>https://dev.to/chrismicea</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4245750%2Fa4fb3dca-0107-420a-8749-4e9999987d0d.jpg</url>
      <title>DEV Community: Micea Christian</title>
      <link>https://dev.to/chrismicea</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chrismicea"/>
    <language>en</language>
    <item>
      <title>Timisight - Unihack 2026</title>
      <dc:creator>Micea Christian</dc:creator>
      <pubDate>Sun, 15 Nov 2026 13:02:14 +0000</pubDate>
      <link>https://dev.to/chrismicea/timisight-unihack-2026-3d6o</link>
      <guid>https://dev.to/chrismicea/timisight-unihack-2026-3d6o</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/mlh-hackathon"&gt;MLH x DEV Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;TimiSight — discover Timișoara, one flower at a time.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Timișoara is nicknamed &lt;em&gt;the City of Flowers&lt;/em&gt;, and TimiSight turns that&lt;br&gt;
nickname into a reality. We place physical flowers around the city — 3D-printed&lt;br&gt;
for now, with sculptures and installations planned — and each one carries an&lt;br&gt;
NFC tag. You tap a flower with your phone to "pick it up" and add it to your&lt;br&gt;
'garden', the way you'd catch a Pokémon.&lt;/p&gt;

&lt;p&gt;Every flower stands for a real place, event, or business. Tap the one outside&lt;br&gt;
the Opera House and an animated, educational popup tells you the opera's&lt;br&gt;
story; tap one at a café, a museum, or a festival stall and you learn about&lt;br&gt;
that spot the same way. Each scan earns points, and points convert into&lt;br&gt;
real-world perks — discounts and offers from partner businesses. The city&lt;br&gt;
stops being something you walk past and becomes something you explore and&lt;br&gt;
collect.&lt;/p&gt;

&lt;p&gt;There are three kinds of people in the ecosystem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explorers&lt;/strong&gt; walk the city, scan flowers, build a collection, and spend
points on perks. We especially wanted kids and families connecting with the
city's history while they play.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Businesses&lt;/strong&gt; adopt a flower, choose how it looks and what it represents,
and manage the perks attached to it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Artists&lt;/strong&gt; design the flowers, and the platform connects them with
businesses that want one brought to life.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The end goal has always been: to strengthen the communities whithin TimiȘoara, connect people with the culture and history of the city and, why not, create a new community.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it's built.&lt;/strong&gt; It's a monorepo with two front ends over a shared&lt;br&gt;
backend. The explorer experience is a mobile app in &lt;strong&gt;Expo / React Native&lt;/strong&gt;&lt;br&gt;
(Expo Router for navigation, Reanimated for the animated popups,&lt;br&gt;
&lt;code&gt;expo-secure-store&lt;/code&gt; for tokens). The presentation of the app is a &lt;strong&gt;Next.js&lt;/strong&gt;&lt;br&gt;
web app. Both talk to &lt;strong&gt;Supabase&lt;/strong&gt; for data, with &lt;strong&gt;Auth0&lt;/strong&gt; handling identity&lt;br&gt;
across the whole platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I learned.&lt;/strong&gt; The biggest lesson was that a physical hook changes&lt;br&gt;
everything about how you design an app. Once "using the app" means finding a&lt;br&gt;
real flower in the city and tapping it, the whole product has to pull people&lt;br&gt;
outside and reward exploration — the screen is the smaller half of the&lt;br&gt;
experience. That reframed decisions we'd otherwise have made by habit, from what&lt;br&gt;
a "collection" feels like to why points and perks matter (they close the loop&lt;br&gt;
back to real places and real businesses).&lt;/p&gt;

&lt;p&gt;Building for three different audiences — explorers, businesses, and artists — on&lt;br&gt;
one platform was the other big one. They want genuinely different things, and&lt;br&gt;
the temptation is to bolt a second experience onto the first. We learned to lean&lt;br&gt;
on the shared backend (one identity, one data model) while keeping the&lt;br&gt;
explorer, business, and artist flows as distinct experiences, so each one stays&lt;br&gt;
simple instead of becoming a compromise.&lt;/p&gt;

&lt;p&gt;And on the engineering side: wiring one identity cleanly across a React Native&lt;br&gt;
app and a Next.js web app taught us how much "boring" infrastructure — auth,&lt;br&gt;
data, a shared source of truth — quietly determines whether the fun parts are&lt;br&gt;
even possible. Getting that foundation right early is what let us spend the rest&lt;br&gt;
of the time on the flower-collecting experience itself.&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;




&lt;div&gt;
    &lt;iframe src="https://www.youtube.com/embed/vgJ7O5zhvaQ" width="315" height="560"&gt;
    &lt;/iframe&gt;
  &lt;/div&gt;


&lt;h2&gt;
  
  
  Partner Technologies
&lt;/h2&gt;

&lt;p&gt;We built TimiSight on two MLH partner technologies: &lt;strong&gt;Auth0&lt;/strong&gt; for identity and&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; for how we actually ran the project day to day.&lt;/p&gt;

&lt;h3&gt;
  
  
  Auth0 — identity across the whole platform
&lt;/h3&gt;

&lt;p&gt;Auth0 is the single source of truth for &lt;em&gt;who a user is&lt;/em&gt;, and both our apps&lt;br&gt;
trust it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mobile (Expo / React Native):&lt;/strong&gt; sign-in runs through &lt;code&gt;expo-auth-session&lt;/code&gt;
against Auth0, with tokens stored securely in &lt;code&gt;expo-secure-store&lt;/code&gt;. A new user
then picks a role — explorer, business, or artist.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web (Next.js):&lt;/strong&gt; the same Auth0 identity backs the business and account
experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The interesting part — Auth0 as a third-party provider for Supabase.&lt;/strong&gt;
Instead of Supabase's built-in auth, we run Supabase in third-party auth mode:
every request carries the Auth0 access token, Supabase validates it against
Auth0's JWKS, and our row-level-security policies read the user's identity
straight from the Auth0 &lt;code&gt;sub&lt;/code&gt; claim. One login, one identity, enforced all the
way down at the database row level.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;My experience:&lt;/strong&gt; the happy path was fast — Auth0 handled the OAuth flow, token&lt;br&gt;
issuance, and hosted login UI so we didn't build any of it. The depth came from&lt;br&gt;
the Supabase integration: Auth0 has to issue a proper signed JWT for the API&lt;br&gt;
audience Supabase expects. When that audience wasn't authorized, Auth0 returned&lt;br&gt;
an opaque token and Supabase rejected it — a great forcing function to actually&lt;br&gt;
understand what a JWT is. Once the audience and JWKS validation lined up, one&lt;br&gt;
Auth0 session drove both apps and secured the database.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub — how we stayed organized
&lt;/h3&gt;

&lt;p&gt;A hackathon can easily turn into everyone editing the same files at 3 a.m. We&lt;br&gt;
avoided that by treating GitHub as our project-management backbone, not just a&lt;br&gt;
place to push code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The repo:&lt;/strong&gt; &lt;a href="https://github.com/Saltspeddy/TimiSight" rel="noopener noreferrer"&gt;https://github.com/Saltspeddy/TimiSight&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Projects&lt;/strong&gt; was our source of truth for work. We tracked everything as
issues on a project board, so at any moment it was clear what was done, in
progress, and still up for grabs — no one stepped on anyone else's task.
(&lt;a href="https://github.com/users/Saltspeddy/projects/4/views/1" rel="noopener noreferrer"&gt;Our board.&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A branch per feature.&lt;/strong&gt; Every feature got its own branch off main, so work
in progress never destabilized what already worked and we could review changes
before merging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Progressive, scoped commits.&lt;/strong&gt; We committed in small, meaningful steps rather
than dumping everything at the end, which kept history readable and made it
easy to trace when and why something changed — and to back out cleanly when a
change didn't pan out.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;My experience:&lt;/strong&gt; the GitHub Projects ↔ issues ↔ branches loop gave a small&lt;br&gt;
hackathon team the discipline of a much larger one. Tying branches to issues&lt;br&gt;
meant our commit history doubled as a record of &lt;em&gt;why&lt;/em&gt; each change happened, and&lt;br&gt;
the board kept parallel work from colliding. For a time-boxed event, that&lt;br&gt;
structure was the difference between momentum and chaos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hackathon Experience
&lt;/h2&gt;

&lt;p&gt;Our team:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Andrei Orbulescu&lt;/li&gt;
&lt;li&gt;Christian Micea&lt;/li&gt;
&lt;li&gt;Daniel Radu&lt;/li&gt;
&lt;li&gt;Dragoș Mâțu&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This submission is for the 2026 Unihack hackathon. More specifically, our team participated in the MuseumsQuartier Immersive Arts track.&lt;br&gt;
After basically living here for the last 48 hours, working, laughing, having fun, and getting frustrated over things that probably shouldn’t have been that serious, I can safely say that Unihack 2026 was a unique experience, worth living. It is a thoughtfully designed community project that is needed and will be here for many years to come. The late nights spent collaborating with my team, learning, and innovating will surely remain a very dear memory.&lt;/p&gt;

&lt;p&gt;What I’ll remember most is the atmosphere: the energy in the room, the shared snacks and fun activities and workshops, and the quiet satisfaction of presenting something we’d built from scratch in just two days. Unihack gave me friendships, and confidence I didn’t have before, and I’m already looking forward to being part of it again.&lt;br&gt;
Thank you to the organizers, mentors, and sponsors for making this possible. If you enjoyed reading this, please share the post. It really helps our submission get seen.&lt;/p&gt;

</description>
      <category>mlhacks</category>
      <category>devchallenge</category>
      <category>hackathon</category>
    </item>
  </channel>
</rss>
