Создать приложение которые позволит просматривать все картинки на лежащие сервере, регистрироваться и загружать картинки на сервер авторизированным пользователям.
Для фронтенда можете использовать любое готовое решение, например Bootstrap, Materializecss. Для опытных фронтенд разработчиков можете взять например svelte/vue/react + MaterialUI/Ant Design.
- /frontend в данный момент имеет три статических файла. Можете писать код в рамках них, но для тех кто желает погрузиться глубже - можете разбить их на мелкие части и собирать их сборщиком вроде gulp / parcel / vite.
- /backend В данный момент подключен функциона раздачи статических файлов из директории /frontend и роутинг с помощью findmyway. Дальнейшие задачи будут связаны с созданием новых роутов и разбитию логики на контроллеры и сервисы.
Некоторые пункты для упрощения реализации, это опционально. Просто наставление чтобы упростить понимание задачи.
- Реализовать метод GET /pets/images/ который будет выдавать массив с названиями всех статических файлов из директории ../frontend/images/ (можно с помощью функции fs.readdir). (если хотите усложнить то можно с пагинацией)
- На фронте вызвать метод GET /pets/images/ с помощью http клиента, fetch, axios или любого другого и получить массив питомцев
- Отрисовать карусель или галерею с существующими петомцами(если хотите усложнить то можно с пагинацией)
- Сделать возможность регистрироваться и авторизовываться(модуль jsonwebtoken с урока)
- Только авторизованные пользователи могут загружать картинки(можете использовать middleware и функцию checkAuth с урока)
- Форму загрузки картинок можете взять готовую, если будут проблемы с загрузкой то можно попытаться решить её вместе. Вот тут дока загрузки файла https://getbootstrap.com/docs/5.0/forms/form-control/#file-input
- На бекенде главное помните что BODY http запроса это Readable Stream, в котором и будет лежать картинка, а рид стримы можно писать(pipe) во Writable Stream, коим является fs.createWriteStream("path/to/images/directory")