Skip to main content
The Op-EdFull Stack
2025-03-012 min

Building InternX: An Internship & Hackathon Hub for Indian Students

How I built a platform that aggregates internship openings and hackathon listings for Indian students, featuring an admin dashboard, SEO optimization, and automated cleanup.

Pass it on LinkedIn Post RSS

InternX is a discovery platform that I built to solve a problem I experienced firsthand as a student: finding relevant internship opportunities and hackathon events is incredibly difficult. The information exists, but it is scattered across hundreds of college notice boards, social media posts, and word-of-mouth channels. I wanted to create a single, reliable, and well-organized resource that Indian students could check daily to find opportunities that matched their interests and skills.

The platform aggregates curated internship openings and hackathon listings with full-text search and detailed filters. Students can filter by location, field, duration, stipend, and more. Each listing includes all the essential information: application deadlines, eligibility criteria, application links, and direct contact information when available. I also built an SEO-optimized blog section with JSON-LD structured data markup, which helps individual listings appear in Google search results with rich snippets.

One of the most technically interesting features is the automated cleanup system. Internship listings expire, hackathon dates pass, and stale content frustrates users. The admin dashboard includes a scheduled job that automatically archives or removes expired listings. But I did not want to simply delete them, because historical data has value for analytics. So I implemented a soft-delete system with a configurable grace period, after which expired listings are permanently removed from search results but retained in a historical archive for trend analysis.

The admin dashboard itself supports full CRUD operations for all content types. Admins can create, edit, and delete listings, manage user accounts, and view analytics dashboards showing usage patterns. Authentication is handled with JWT tokens, and the admin interface is protected by role-based access control.

On the technical side, the frontend uses React 19 with Vite for optimal performance. The backend is a Node.js and Express API with Supabase PostgreSQL for data storage. The API is designed with a clean separation of concerns, with dedicated routes for listings, blog posts, user management, and analytics.

Building InternX taught me about the challenges of maintaining data quality in a user-generated content system. Even with admin moderation, listings can contain errors, broken links, or outdated information. I implemented a reporting system that allows users to flag problematic listings, and the admin dashboard prioritizes these flags for review. This community-driven quality control mechanism has been essential for maintaining trust in the platform.

I also learned a great deal about SEO optimization for dynamic content. Each listing page needs unique meta tags, Open Graph images, and structured data. I built a dynamic SEO metadata generator that constructs appropriate tags based on the listing type, location, and other attributes. The result is that InternX listings consistently rank well in search results for relevant queries.

Filed under
React 19ViteNode.jsExpressSupabaseSEOJWT