A modern full-stack MERN application for discovering and managing internship opportunities. Built with a sleek dark-themed UI featuring glassmorphism effects, advanced search capabilities, and a comprehensive CRUD system for internship postings.
Finding and managing internship opportunities shouldn't be complicated. Traditional job portals are often cluttered and lack modern user experiences. Internify solves this by providing:
- Streamlined Discovery - Quick search and filtering to find relevant opportunities instantly
- Modern Interface - Eye-friendly dark theme with premium design patterns that students and recruiters actually enjoy using
- Centralized Management - Single platform for both posting and browsing internships
- Developer-Friendly - Clean API structure and component-based architecture for easy customization
Perfect for universities, companies, or recruitment agencies looking to modernize their internship management system.
- Browse Internships - Discover opportunities with real-time search, location/type filters, and pagination
- Post Internships - Multi-section form supporting remote/on-site/hybrid positions with skills, requirements, and compensation details
- Manage Internships - Edit and delete existing postings with inline editing capabilities
- Advanced Search - Search by title, company, or description with instant results
- Smart Filtering - Filter by location, internship type (Remote/On-site/Hybrid), and status (Active/Closed/Draft)
- Detailed Views - Modal popups with complete internship information including requirements, skills, and application links
- Full CRUD operations (Create, Read, Update, Delete)
- RESTful API with pagination support
- In-memory MongoDB fallback for development
- Responsive design for all screen sizes
- Input validation and error handling
- Real-time updates across components
- Dark Theme - Deep slate backgrounds with high-contrast text for reduced eye strain
- Glassmorphism - Translucent containers with backdrop blur effects
- Gradient Accents - Purple-to-pink gradients throughout the interface
- Smooth Animations - Hover effects, transitions, and micro-interactions
- Premium Cards - Elevated design with shadows, borders, and hover transforms
- MongoDB: Database for storing internship records
- Express.js: Backend framework
- React: Frontend library
- Node.js: Runtime environment
├── backend/
│ ├── models/
│ │ └── Internship.js # MongoDB schema
│ ├── routes/
│ │ └── internships.js # API routes
│ ├── server.js # Express server
│ ├── package.json
│ └── .env # Environment variables
└── frontend/
├── src/
│ ├── components/
│ │ ├── AddInternship.js # Add internship form
│ │ └── ManageInternships.js # Edit/Delete internships
│ ├── App.js # Main app component
│ ├── App.css # Styling
│ └── index.js # Entry point
├── public/
│ └── index.html
└── package.json
- Node.js installed
- MongoDB Atlas account (for production) or local MongoDB (for development)
- Navigate to backend folder:
cd backend- Install dependencies:
npm install- Create
.envfile (copy from.env.exampleif needed):
cp .env.example .env-
Update
.envwith your MongoDB connection string and JWT secret -
Start the backend server:
npm startBackend will run on http://localhost:5000
- Navigate to frontend folder:
cd frontend- Install dependencies:
npm install- Create
.envfile:
cp .env.example .env- Start the React development server:
npm startFrontend will run on http://localhost:3000
See DEPLOYMENT.md for detailed instructions on deploying to Render.
Backend (Web Service):
- Build Command:
npm install - Start Command:
npm start - Add environment variables:
MONGO_URI,JWT_SECRET,NODE_ENV,FRONTEND_URL
Frontend (Static Site):
- Build Command:
npm install && npm run build - Publish Directory:
build - Add environment variable:
REACT_APP_API_URL
POST /api/auth/register- Register new userPOST /api/auth/login- Login userGET /api/auth/me- Get current user (protected)PUT /api/auth/profile- Update user profile (protected)
GET /api/internships- Get all internships (with search, filter, pagination)GET /api/internships/:id- Get single internshipPOST /api/internships- Create new internshipPUT /api/internships/:id- Update internshipDELETE /api/internships/:id- Delete internship
- Ensure MongoDB is running
- Start backend server (port 5000)
- Start frontend server (port 3000)
- Navigate to
http://localhost:3000 - Use "Add Internship" page to create new records
- Use "Manage Internships" page to view, edit, or delete records
- Title (required)
- Company (required)
- Location (optional)
- Stipend (optional)
- Start Date (optional)
- Duration in Weeks (optional)
- Description (optional)