Skip to content

Latest commit

 

History

53 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Internify - Premium Internship Portal

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.

Why This Project?

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.

Features

Core Functionality

  • 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

Technical Features

  • 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

UI/UX Highlights

  • 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

Tech Stack

  • MongoDB: Database for storing internship records
  • Express.js: Backend framework
  • React: Frontend library
  • Node.js: Runtime environment

Project Structure

├── 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

Setup Instructions

Prerequisites

  • Node.js installed
  • MongoDB Atlas account (for production) or local MongoDB (for development)

Backend Setup

  1. Navigate to backend folder:
cd backend
  1. Install dependencies:
npm install
  1. Create .env file (copy from .env.example if needed):
cp .env.example .env
  1. Update .env with your MongoDB connection string and JWT secret

  2. Start the backend server:

npm start

Backend will run on http://localhost:5000

Frontend Setup

  1. Navigate to frontend folder:
cd frontend
  1. Install dependencies:
npm install
  1. Create .env file:
cp .env.example .env
  1. Start the React development server:
npm start

Frontend will run on http://localhost:3000

Deployment

See DEPLOYMENT.md for detailed instructions on deploying to Render.

Quick Deploy 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

API Endpoints

Authentication

  • POST /api/auth/register - Register new user
  • POST /api/auth/login - Login user
  • GET /api/auth/me - Get current user (protected)
  • PUT /api/auth/profile - Update user profile (protected)

Internships (All Protected)

  • GET /api/internships - Get all internships (with search, filter, pagination)
  • GET /api/internships/:id - Get single internship
  • POST /api/internships - Create new internship
  • PUT /api/internships/:id - Update internship
  • DELETE /api/internships/:id - Delete internship

Usage

  1. Ensure MongoDB is running
  2. Start backend server (port 5000)
  3. Start frontend server (port 3000)
  4. Navigate to http://localhost:3000
  5. Use "Add Internship" page to create new records
  6. Use "Manage Internships" page to view, edit, or delete records

Internship Data Fields

  • Title (required)
  • Company (required)
  • Location (optional)
  • Stipend (optional)
  • Start Date (optional)
  • Duration in Weeks (optional)
  • Description (optional)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages