[Разработка веб-сайтов, JavaScript, Программирование, ReactJS] React Social App
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Доброго времени суток, друзья!
В поисках вдохновения наткнулся на этот замечательный туториал, посвященный разработке «социального» клиент-серверного приложения на MERN + GraphQL.
Решил его расшифровровать и немного доработать для заинтересованных. Расшифровка означает, что каждая строка кода снабжена подробным комментарием. Доработка состоит в добавлении аватара пользователя и исправлении нескольких критичных для работы приложения ошибок.
Код проекта находится здесь.
Основные возможности приложения
- Регистрация/авторизация пользователей
- Добавление/удаление постов
- Лайк/дизлайк постов
- Добавление/удаление комментариев к постам
- Отображение количества лайков и комментариев
Стек технологий
Сервер:
- Apollo Server
- GraphQL + GraphQL Tag
- Mongoose
- JSON Web Token
- Bcrypt
- Supervisor
- Concurrently
Клиент:
- React
- ReactDOM
- React Router DOM
- Apollo Client
- GraphQL + GraphQL Tag
- JWT Decode
- React Loader Spinner
- Semantic UI React
Структура проекта
- client - клиент
- public
- index.html - шаблон разметки
- src
- modules
- components
- CommentButton.js - кнопка для комментария
- DeleteButton.js - кнопка для удаления поста или комментария
- LikeButton.js - кнопка для лайка
- MenuBar.js - панель навигации
- PostCard.js - карточка поста, используемая на главной странице
- PostForm.js - форма для добавления нового поста
- index.js - агрегация компонентов
- context
- auth.js - контекст с информацией об аутентификации
- ...
- pages
- Home.js - главная/домашняя страница
- Login.js - страница авторизации
- Register.js - страница регистрации
- SinglePost.js - страница одного поста
- index.js - агрегация страниц
- utils
- Loader.js - индикатор загрузки
- MyPopup.js - всплывающая подсказка
- authRoute.js - утилита для приватного роутинга
- convertImg.js - утилита для преобразования изображения в base64-строку
- formatDate.js - утилита для форматирования даты
- useForm.js - кастомный хук для работы с формой
- index.js - агрегация утилит
- graphql.js - запросы и мутации graphql
- ApolloProvider - провайдер, позволяющий установить связь с сервером
- App.css - коррекция стилей semantic
- App.js - основной компонент приложения
- index.js - главный файл клиента, точка входа для Webpack
- jsconfig.json - настройки компилятора
- ...
- graphql
- resolvers - операции, выполняемые с данными в ответ на запрос или мутацию graphql
- comments.js - мутации для комментариев
- posts.js - запросы и мутации для постов
- users.js - мутации для пользователей
- index.js - агрегация запросов и мутаций
- typeDefs.js - определения типов (моделей) данных, запросов и мутаций
- models
- Post.js - модель поста
- User.js - модель пользователя
- utils
- check-auth.js - утилита для проверки аутентификации
- validators.js - валидаторы для регистрации и авторизации
- index.js - главный файл сервера
- ...
Инструкция по установке и запуску находится в репозитории проекта.
Скриншоты приложения
По понятным причинам я не могу показать демо приложения, поэтому ограничусь скриншотами.
Регистрация
Авторизация
Главная страница
Страница поста
Удаление поста или комментария
База данных
Как всегда, буду рад любой форме обратной связи.
Благодарю за внимание и хорошего дня.
===========
Источник:
habr.com
===========
Похожие новости:
- [Open source, Программирование, Геоинформационные сервисы, Визуализация данных, Научно-популярное] Google Earth Engine (GEE) как общедоступный суперкомпьютер
- [Разработка веб-сайтов, Программирование, Компиляторы, IT-стандарты] Wasp — DSL для разработки веб-приложений
- [Программирование микроконтроллеров, Электроника для начинающих] На распутье — Ардуино, Cи или Ассемблер?
- [Программирование, Dart] Ускоряем Dart. Нативно, недорого
- [Разработка веб-сайтов, PHP, Laravel] Laravel–Дайджест (8–21 марта 2021)
- [Разработка веб-сайтов, .NET, Компиляторы, C#, WebAssembly] Ahead-of-Time компиляция и Blazor
- [Программирование, C++, Программирование микроконтроллеров, Производство и разработка электроники] Создание аналога посмертного сore dump для микроконтроллера
- [Программирование, Алгоритмы] Детская сказка программисту на ночь
- [Программирование микроконтроллеров, Схемотехника] USB на регистрах: STM32L1 / STM32F1
- [JavaScript, Работа с 3D-графикой, WebGL] Рендеринг шрифтов для WebGL при помощи инстумента msdf-bmfont-xml и технологии MSDF
Теги для поиска: #_razrabotka_vebsajtov (Разработка веб-сайтов), #_javascript, #_programmirovanie (Программирование), #_reactjs, #_javascript, #_react.js, #_reactjs, #_react, #_graphql, #_apollo, #_mongoose, #_mongodb, #_mern, #_social, #_node.js, #_nodejs, #_razrabotka_vebsajtov (
Разработка веб-сайтов
), #_javascript, #_programmirovanie (
Программирование
), #_reactjs
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 08:09
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Доброго времени суток, друзья! В поисках вдохновения наткнулся на этот замечательный туториал, посвященный разработке «социального» клиент-серверного приложения на MERN + GraphQL. Решил его расшифровровать и немного доработать для заинтересованных. Расшифровка означает, что каждая строка кода снабжена подробным комментарием. Доработка состоит в добавлении аватара пользователя и исправлении нескольких критичных для работы приложения ошибок. Код проекта находится здесь. Основные возможности приложения
Стек технологий Сервер:
Клиент:
Структура проекта - client - клиент
- public - index.html - шаблон разметки - src - modules - components - CommentButton.js - кнопка для комментария - DeleteButton.js - кнопка для удаления поста или комментария - LikeButton.js - кнопка для лайка - MenuBar.js - панель навигации - PostCard.js - карточка поста, используемая на главной странице - PostForm.js - форма для добавления нового поста - index.js - агрегация компонентов - context - auth.js - контекст с информацией об аутентификации - ... - pages - Home.js - главная/домашняя страница - Login.js - страница авторизации - Register.js - страница регистрации - SinglePost.js - страница одного поста - index.js - агрегация страниц - utils - Loader.js - индикатор загрузки - MyPopup.js - всплывающая подсказка - authRoute.js - утилита для приватного роутинга - convertImg.js - утилита для преобразования изображения в base64-строку - formatDate.js - утилита для форматирования даты - useForm.js - кастомный хук для работы с формой - index.js - агрегация утилит - graphql.js - запросы и мутации graphql - ApolloProvider - провайдер, позволяющий установить связь с сервером - App.css - коррекция стилей semantic - App.js - основной компонент приложения - index.js - главный файл клиента, точка входа для Webpack - jsconfig.json - настройки компилятора - ... - graphql - resolvers - операции, выполняемые с данными в ответ на запрос или мутацию graphql - comments.js - мутации для комментариев - posts.js - запросы и мутации для постов - users.js - мутации для пользователей - index.js - агрегация запросов и мутаций - typeDefs.js - определения типов (моделей) данных, запросов и мутаций - models - Post.js - модель поста - User.js - модель пользователя - utils - check-auth.js - утилита для проверки аутентификации - validators.js - валидаторы для регистрации и авторизации - index.js - главный файл сервера - ... Инструкция по установке и запуску находится в репозитории проекта. Скриншоты приложения По понятным причинам я не могу показать демо приложения, поэтому ограничусь скриншотами. Регистрация Авторизация Главная страница Страница поста Удаление поста или комментария База данных Как всегда, буду рад любой форме обратной связи. Благодарю за внимание и хорошего дня. =========== Источник: habr.com =========== Похожие новости:
Разработка веб-сайтов ), #_javascript, #_programmirovanie ( Программирование ), #_reactjs |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 08:09
Часовой пояс: UTC + 5