Inspiration
As developers, we all have a digital "graveyard" messy directories, scattered assets, and forgotten projects buried deep in our hard drives. The inspiration for Digital Archaeologist came from the need to stop manually sorting through this chaos. We wanted an intelligent "excavator" that could automatically structure, organize, and clean our data, transforming a digital dumping ground into a structured, searchable archive.
How we built it
We built the frontend using React and Vite, styled with Tailwind CSS for a clean, responsive workspace. The user interface utilizes lucide-react for intuitive iconography across the Dashboard, Archive Explorer, and Duplicate Detective modules. The architecture is split between a fast, modular frontend hosted on Vercel and a Node.js/Express backend hosted on Render, which is designed to handle the heavy lifting of data processing, API routing, and AI decision intelligence using the Gemini API
Challenges we ran into
The biggest roadblocks hit right at the deployment finish line. We battled invisible JSON corruption where a hidden Byte Order Mark (BOM) character in our package.json repeatedly crashed our Vercel builds. We also faced strict TypeScript roadblocks, requiring us to configure Vite to bypass tsc checks entirely during the final crunch. Finally, connecting the Vercel frontend to the Render backend resulted in aggressive CORS blocking, forcing us to hunt down hardcoded placeholder API URLs and manually inject middleware to whitelist our specific Vercel domain.
Accomplishments that we're proud of
We are incredibly proud of pushing through a barrage of deployment failures to successfully ship a polished, functional UI prototype before the EvoHacks deadline. We built a clean, modular component system that elegantly handles missing backend connections—falling back to localStorage and sample data—without breaking the user experience.
What we learned
his hackathon was a masterclass in deployment infrastructure and debugging under pressure. We learned how to trace hidden file encoding errors, manage environment-specific API routing, and securely handle cross-origin resource sharing between two distinct hosting platforms. We also explored the math behind efficient archive processing; naively comparing $N$ files for duplicates results in a time complexity of $O(N^2)$, but by planning to utilize file hashing algorithms, the complexity can be optimized down to $O(N)$, ensuring the application scales even as digital archives grow exponentially over time based on the function $f(t) = a \cdot e^{kt}$
What's next for Digital Archaeologist
The immediate next step is fully establishing the connection to the Render backend to power the real-time AI decision intelligence. From there, we plan to implement direct cloud-storage integrations and build out advanced data visualization for the Mission Control dashboard.
Built With
- api
- css
- css3
- express.js
- gemini
- git
- html5
- javascript
- node.js
- react
- render
- tailwind
- typescript
- vercel
- vite
Log in or sign up for Devpost to join the conversation.