The Smart Student identification System is a full-stack web application designed to streamline the collection, storage, and retrieval of student data. It enables administrators to efficiently upload student details—including personal information and photographs—while generating unique QR codes for each student record. The system integrates cloud-based image storage for optimal performance and ease of maintenance.The system employs Node.js-based RESTful API designed for handling secure student identity records. It accepts image uploads, stores student details in MongoDB using Mongoose, and encrypts/decrypts sensitive QR code data with Cloudinary integration for image hosting in the cloud.
- Student Data Management:
- Upload and manage student details such as student ID, full name, email, department, and StudentId Image.
- Generate unique QR codes for each student record.
- RESTful API:
- Built using Node.js and Express.js, offering robust CRUD operations.
- Cloud Image Storage:
- Integrated with Cloudinary for secure, optimized storage and delivery of student ID images. Uses Multer to manage image uploads.
- QR Code Encryption/Decryption:
- Encrypts student data for QR code generation and supports decryption on the client-side.
- Database Integration:
- Uses MongoDB for scalable and efficient data storage with proper indexing and unique constraints.//schema
- Responsive UI:
- Clean and intuitive interface built with HTML, CSS, and JavaScript.
-
Backend: Node.js, Express.js
-
Database: MongoDB
-
Image Storage: Cloudinary
-
Frontend: HTML, CSS, JavaScript
-
API Design: RESTful web services
- Node.js (v14+ recommended)
- MongoDB installed and running locally
- A Cloudinary account for image hosting
- Git
-
Clone the Repository:
git clone https://github.com/DevKorrir/digital_Student_identity_io-index.html cd digital-student-identity -
install dependencies
npm install
-
Configure Environment variables:
# MongoDB connection string MONGO_URI=mongodb://localhost:27017/mustid # Cloudinary configuration CLOUD_NAME=your_cloud_name API_KEY=your_api_key API_SECRET=your_api_secret # Secret key for encryption (64-character hex string) SECRET_KEY=encryption_key # Server port PORT=5002
-
Start the server
npm start or node server.js
-
POST /add-student
- Upload a new student record. Expects a multipart/form-data request with text fields (e.g., name, studentId, email, course, year) and a file field image.
-
PUT /update-student/:id
- Update student details.
-
DELETE /delete-student/:id
- Delete a student record.
-
GET /get-students
- Retrieve all student records.
-
GET /get-student/:id
- Retrieve a single student's details.
-
POST /login
- Login endpoint; validates student credentials (email and studentId).
This project was developed as a group collaboration. Special thanks to all contributors:
- DevKorrir – Android Developer, QR Scanner Implementation
- Peter Mbaluka
- Miriam Bwari
- Maina Tom Ngure
- Victor Ndirangu
- Eunice Mwendwa
- Samwel Mwasi
MIT: Feel free to adjust the content, structure, and instructions to better fit your actual project setup