A modern web application for managing student records with a clean, responsive UI built with React and Express.js.
✨ Student Management
- 📋 View all student records
- ➕ Add new students
- ✏️ Edit student details
- 🗑️ Delete student records
🎨 User Interface
- Responsive design (mobile, tablet, desktop)
- Clean and intuitive UI with Tailwind CSS
- Real-time form validation
- Loading states and error handling
💾 Data Persistence
- JSON-based data storage
- RESTful API backend
- Express.js server
my-app/
├── frontend/ # React app
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── App.jsx # Main app component
│ │ ├── api.js # API integration
│ │ └── index.css # Tailwind styles
│ ├── index.html
│ ├── vite.config.js
│ └── package.json
│
└── backend/ # Express server
├── server.js # Main server file
├── db.js # Database operations
├── data/
│ └── students.json # Student data
└── package.json
- Node.js (v16 or higher)
- npm or yarn
- Navigate to backend folder:
cd backend
npm install- Start the backend server:
npm start
# or for development with auto-reload
npm run devThe backend will run on http://localhost:5000
- Navigate to frontend folder:
cd frontend
npm install- Start the development server:
npm run devThe frontend will run on http://localhost:3000
- Open
http://localhost:3000in your browser - Click "Add New Student" to add a student
- Fill in the required fields (Name, Email, Phone, Date of Birth)
- View all students in the main list
- Click "Edit" to update student details
- Click "Delete" to remove a student
GET /api/students
GET /api/students/:id
POST /api/students
Body: { name, email, phone, grade, dob, address }
PUT /api/students/:id
Body: { name, email, phone, grade, dob, address }
DELETE /api/students/:id
Frontend:
- React 18
- Vite
- Tailwind CSS
- Axios
Backend:
- Express.js
- Node.js
- File System (fs) for JSON storage
The application is fully responsive:
- Mobile: Single column layout
- Tablet: Optimized card grid
- Desktop: 3-column layout with sidebar
Student records are stored in JSON with the following structure:
{
"id": "1",
"name": "John Doe",
"email": "john@example.com",
"phone": "555-0101",
"grade": "10",
"dob": "2008-05-15",
"address": "123 Main St, City"
}MIT