A powerful Node.js + Express.js backend for managing internship applications and verifying digital certificates. Built for scale, speed, and simplicity — this API integrates seamlessly with Google Sheets and MongoDB for efficient data storage and lookup.
Demo.backend.API.mp4
-
Internship Application Submission
- Validates incoming data from students
- Securely stores applications to Google Sheets using the Google Sheets API
- Duplicate detection based on contact number
-
Certificate Management & Verification
- Admin-only route to add certificates (protected by API key)
- Fast certificate lookup by unique
certId
- MongoDB-powered schema for flexible certificate structure
-
Security & Middleware
- Helmet for HTTP headers security
- CORS enabled
- API-key-based admin protection
- Centralized input validation
Layer | Technology |
---|---|
Server | Node.js + Express |
Database | MongoDB + Mongoose |
Spreadsheet | Google Sheets API |
Auth (Admin) | API Key |
Validation | Express Validator |
git clone https://github.com/your-username/internship-backend.git
cd internship-backend
npm install
PORT=3000
MONGO_URI=mongodb+srv://your-cluster.mongodb.net/db-name
GOOGLE_SHEET_ID=your_google_sheet_id
ADMIN_API_KEY=supersecureadminkey
Create a Google Service Account and place your credentials JSON file at the root or in a /config directory. Don’t forget to share your sheet with the service account email!
npm run dev
Method | Endpoint | Description |
---|---|---|
POST | /api/apply |
Submit internship application |
Method | Endpoint | Description |
---|---|---|
POST | /api/certificates |
Add a new certificate |
api-key: <your-admin-api-key>
Method | Endpoint | Description |
---|---|---|
GET | /api/certificates/verify/:certId |
Get certificate by ID |
POST /api/apply
{
"name": "Ritika Gupta",
"gender": "Female",
"age": 22,
"contactNumber": "9876543210",
"college": "Pawan Institute of Tech",
"collegeAmbassador": true,
"domain": "Web Development",
"linkedinFollowed": true,
"screenshot": "screenshot_url_or_file",
"referrerName": "Ayush Sinha",
"agreedToTerms": true
}
- Email confirmations to applicants
- Document upload uploads
- PDF Certificate Generator (Like Courcera)