Курсовая работа по JavaScript. Реализована полноценная панель управления списком студентов с клиентской частью и собственным REST API бэкендом.
- Фронтенд - чистый Vanilla JS (без фреймворков)
- Бэкенд - Node.js + HTTP-сервер (без Express)
- Данные хранятся в
db.json - Полная реализация CRUD-операций
- Валидация на клиенте и сервере
- Фильтрация, сортировка, добавление и удаление
-
Таблица студентов с данными:
- Ф. И. О.
- Факультет
- Дата рождения и возраст
- Годы обучения и курс
- Кнопка удаления
-
Сортировка по клику на заголовок колонки:
- по ФИО (в алфавитном порядке)
- по факультету
- по дате рождения
- по году начала обучения
-
Фильтры:
- Поиск ФИО (подстрока в имени, отчестве или фамилии)
- По факультету (точное совпадение)
- По году начала обучения (точное совпадение)
- По году окончания обучения (точное совпадение)
-
Форма добавления студента с валидацией:
- Все поля обязательны
- Имя, отчество и фамилия должны быть не короче 2 символов, состоять из букв русского или английского алфавитов, а также могут содержать знаки пробела и дефиса
- Дата рождения: не ранее 100 лет назад и не позднее 10 лет назад от текущей даты
- Год начала обучения: от 2000 до текущего года
Запускается на http://localhost:3000
| Метод | URL | Описание |
|---|---|---|
GET |
/api/students |
Получить список студентов (?search=search string) |
POST |
/api/students |
Добавить студента |
GET |
/api/students/{id} |
Получить студента по ID |
PATCH |
/api/students/{id} |
Обновить студента |
DELETE |
/api/students/{id} |
Удалить студента |
{
"id": "1701234567890",
"name": "Иван",
"surname": "Иванов",
"lastname": "Иванович",
"birthday": "2002-05-15",
"studyStart": "2021",
"faculty": "Информатика и ВТ",
"createdAt": "2025-04-05T10:20:30.123Z",
"updatedAt": "2025-04-05T10:20:30.123Z"
}- Склонируйте репозиторий
git clone https://github.com/EvgPov/StudentControlPanel.git
- Запустите сервер
npm run startСервер запустится на http://localhost:3000
3. Откройте index.html в браузере
- Frontend: HTML, CSS (Flexbox / Grid), Vanilla JavaScript (ES6+)
- Backend: Node.js, встроенный http, fs (без сторонних зависимостей)
- Хранение данных: db.json
- CORS: включён (Access-Control-Allow-Origin: *)