A premium web application to track and manage internship applications. Built with React (Vite) on the frontend, FastAPI on the backend, and PostgreSQL (with SQLite fallback) on the database layer.
Styled using state-of-the-art Vanilla CSS incorporating curated dark-mode color palettes, HSL glow effects, glassmorphic layout panels, and responsive styles.
- Dashboard Statistics: Total applications, applied count, OA received, active interview counts, select offers, and rejections.
- Application Logs: Company, Role, Status (Applied, OA, Interview, Selected, Rejected), Location, Salary, Application Date, and Rich Text Notes.
- Debounced Search: Instantly query your applications by company name, role, location, or notes.
- Filters: Quickly filter results by job status.
- View Toggle: Switch between a grid card view and structured table display.
- JWT Authentication: Full user signup and session state mapping.
internship-tracker/
├── frontend/ # React + Vite Client
│ ├── src/
│ │ ├── components/ # Navbar, Sidebar, Card, Form, StatusBadge
│ │ ├── pages/ # Dashboard, Login, Register, Profile, etc.
│ │ ├── services/ # api wrapper, auth, application services
│ │ ├── context/ # AuthContext session manager
│ │ ├── App.jsx # Routing configurations
│ │ └── main.jsx
│ └── package.json
│
├── backend/ # FastAPI Application
│ ├── app/
│ │ ├── database/ # DB Session connector
│ │ ├── models/ # SQLAlchemy models (User, Application)
│ │ ├── schemas/ # Pydantic validation schemas
│ │ ├── routers/ # Auth & Applications endpoints
│ │ ├── services/ # CRUD database operations logic
│ │ └── utils/ # Security helper (passwords, JWT generation)
│ ├── requirements.txt
│ └── .env
│
├── database/
│ └── schema.sql # Database initialization DDL script
│
├── README.md
└── requirements.md
Important
To run commands easily, configure the project directory as your active workspace:
C:\Users\Uday Singh\.gemini\antigravity\scratch\internship-tracker
By default, the application is configured to connect to PostgreSQL. However, if PostgreSQL is not active or configured, the backend will automatically fall back to a local SQLite database (internship_tracker.db), ensuring it works instantly without any configuration.
If you choose to use PostgreSQL:
- Create a database named
internship_tracker. - Configure database credentials in
backend/.env.
Navigate to the backend directory, create a virtual environment, install requirements, and run the FastAPI server:
cd backend
python -m venv venv
.\venv\Scripts\activate
pip install -r requirements.txt
python app/main.pyThe backend API documentation will be available at http://localhost:8000/docs.
Navigate to the frontend directory, install packages, and spin up the Vite development server:
cd frontend
npm install
npm run devThe React frontend web interface will load at http://localhost:5173.
- Glassmorphism panels using HSL translucent background colors and backdrop filters.
- Glowing hover micro-animations on statistic counters and control buttons.
- Inter typeface as standard font mapping.
- Case-specific glowing indicators for internship workflow states.