A modern, full-stack web application for managing student records with complete CRUD (Create, Read, Update, Delete) functionality. Built with a focus on clean architecture, responsive design, and user-friendly interface.
- β Create - Add new student records with comprehensive details
- π Read - View and search through student lists with ease
- βοΈ Update - Edit existing student information seamlessly
- ποΈ Delete - Remove student records with confirmation
- π Search & Filter - Quickly find students by name, ID, or other criteria
- π± Responsive Design - Works perfectly on desktop, tablet, and mobile devices
- β‘ Real-time Updates - Instant UI updates without page refresh
- π Input Validation - Ensures data integrity with client and server-side validation
- Framework: React.js
- Styling: Material-UI
- HTTP Client: Fetch API
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB
- ORM/ODM: Mongoose
- Version Control: Git & GitHub
- Package Manager: npm
- Development: Nodemon, Concurrently
Before you begin, ensure you have the following installed:
- Node.js (v14.0 or higher)
- npm or yarn
- MongoDB (depending on your database choice)
- Git
git clone https://github.com/AYOU000/full_stack_list_student.git
cd full_stack_list_student# Navigate to backend directory
cd backend
# Install dependencies
npm install
# Create environment variables file
cp .env.example .env
# Configure your .env file with:
# - Database connection string
# - Port number
# - JWT secret (if applicable)
# - Other necessary environment variables
# Start the backend server
npm start
# or for development with hot reload
npm run dev# Navigate to frontend directory (in a new terminal)
cd frontend
# Install dependencies
npm install
# Create environment variables file
cp .env.example .env
# Configure your .env file with:
# - API base URL
# - Other frontend configuration
# Start the frontend development server
npm start# For MongoDB
# Make sure MongoDB is running locally or use MongoDB Atlas
npm run migrateOnce both servers are running:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000 (or your configured port)
full_stack_list_student/
β
βββ frontend/ # Frontend application
β βββ public/ # Static files
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ services/ # API service functions
β β βββ utils/ # Helper functions
β β βββ App.js # Main App component
β β βββ index.js # Entry point
β βββ package.json
β
βββ backend/ # Backend application
β βββ controllers/ # Request handlers
β βββ models/ # Database models
β βββ routes/ # API routes
β βββ middleware/ # Custom middleware
β βββ config/ # Configuration files
β βββ utils/ # Utility functions
β βββ server.js # Server entry point
β βββ package.json
β
βββ README.md
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/students |
Get all students |
| GET | /api/students/:id |
Get student by ID |
| POST | /api/students |
Create new student |
| PUT | /api/students/:id |
Update student |
| DELETE | /api/students/:id |
Delete student |
| GET | /api/students/search?q=query |
Search students |
{
"id": "24172526",
"fullname": "Karim",
"age": "23",
"email": "karim@example.com",
"class": "241704"
}
}{
id:string;
fullname:string,
age:string,
email:string,
class:string
}- Displays all students in a responsive table/card layout
- Sortable columns
- Pagination for large datasets
- Quick action buttons (Edit, Delete, View)
- Form validation with error messages
- Auto-save draft functionality
- Success/error notifications
- Cancel and reset options
- Real-time search across multiple fields
- Filter by course, year, or status
- Clear filters option
# Run frontend tests
cd frontend
npm run dev
# Run backend tests
cd backend
npm run dev
cd frontend
npm run dev
# Deploy the build folder to your hosting servicecd backend
# Follow your hosting provider's deployment guide
# Set up environment variables in the hosting dashboardContributions are welcome! Please follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- User authentication and authorization
- Role-based access control (Admin, Teacher, Student)
- Export student data to CSV/Excel
- Email notifications
- Student profile pictures
- Attendance tracking
- Grade management system
- Dark mode support
- Multi-language support
- Advanced analytics dashboard
- List any known bugs or limitations here
This project is licensed under the MIT License - see the LICENSE file for details.
AYOU000
- GitHub: @AYOU000
- Project Link: https://github.com/AYOU000/full_stack_list_student
- Thanks to all contributors who have helped improve this project
- Inspired by modern full-stack development practices
- Built with β€οΈ for learning and educational purposes
If you encounter any issues or have questions:
- Open an issue on GitHub
- Check existing issues for solutions
- Contact the maintainer
β If you find this project useful, please consider giving it a star on GitHub!
Happy Coding! π