Приложение Books search позволяет пользователям находить книги по вводимым словам, категориям, новизне и релевантности, и в последствии ознакомиться с ней.
- Next,
- React,
- TypeScript,
- Redux,
- Docker,
- Google Book API,
# установка зависимостей
$ npm install
# запуск сервера для разработки localhost:3000
$ npm run dev
# сборка и запуск сервера
$ npm run build
$ npm run start
# создания образа докера
docker build . -t books-search
# запустить образ докера
docker run -p 3000:3000 books-search
# Для правильной работы нужно добавить файл .env.local со содержимым NEXT_PUBLIC_API_KEY=<Ваш API key>.
# Создать API key можно здесь https://console.cloud.google.com/apis/credentials
На реализацию этого проекта у меня ушло значительно больше времени чем я рассчитывал, так как у меня не большой опыт работы с TS и Redux. Без их использования я бы справился значительно быстрее, но за то теперь это приложение будет проще обслуживать и выявлять ошибки в нем, не говоря уже о полученном опыты. Во время работы возникало немало проблем и вопросов, связанных с типизаций и работой со состояниями. Из-за этого мне приходилось перебирать множество вариантов, долго разбирается и использовать не самые оптимальные способы. И в итоге, времени у меня оставалось мало и пришлось остановить разработку и задеплоить, не совсем готовое приложение. При разработке я начинал писать тесты, но впоследствии понял, что не успеваю. Так что по время разработки этого приложение я его тестировал с помощью девтулзов и логов. В последствии я планирую довершить это приложение, так как мне нравиться его идея и потенциал.
- Доделать обработку ошибок;
- Добавить тесты (как минимум для основных функций, думаю использовать jest, не забыть добавить тестирование в docker);
- Улучшить Seo (как минимум meta тег для страницы книги);
- Улучшить стилизацию
- Увеличить информативность страницы с книгой
- Возможно добавлю аутентификацию с возможностью сохранять избранные книги
Приложение: https://books-search-henna.vercel.app/
Документация Google Books: https://developers.google.com/books/docs/v1/using?hl=ru