Social Hamster - мой первый пет проект.
Целью была попытка реализовать функциональность социальной сети.
Backend и Frontend написаны мною с нуля. Весь код в проекте написан собственноручно.
Я не Fronend разработчик и уж тем более не дизайнер, поэтому я не изучал лучших практик в построении Frontend приложений, тем не менее я старался написать качественный код
Дизайн для мобильных устройств не предусмотрен. Для корректного отображения сайта следует заходить с ПК
Рабочий сайт проекта: https://socialhasmter.homka122.ru
Рабочее URL backend проекта: https://apisocialhasmter.homka122.ru
Backend: https://github.com/homka122/socialHamster
Frontend: https://github.com/homka122/socialHamsterFrontend
- Регистрация, авторизация, роли.
- Диалоги, сообщения и получение таковых в реальном времени (веб-сокеты).
- Лента постов, возможность лайкать посты.
- Комментарии к постам, возможность лайкать комментарии.
- Личная страница пользователя.
- Возможность сменить фото профиля.
- Возможность добавить пользователя в друзья\отклонить заявку\оставить в подписчиках.
- Сервер: nginx (reverse-proxy, настройка статики)
- Контейнеризация: Docker
- Фреймворк: Express
- База данных: MongoDB (mongoose). В том числе технология aggregation.
- Веб-Сокеты: ws.
- Работа с файлами: multer.
- Работа с JWT-токенами: jsonwebtoken.
- Валидация данных: JOI.
- Хеширование паролей: bcryptjs.
- Работа с CORS: cors.
- Фреймворк: React.
- Роутинг: React-router-dom.
- Веб-сокеты: ws.
Сервис mongod должен быть запущен на локальной машине
Если база данных находиться на сервере - просто замените ссылку на ссылку для удаленного доступа
sudo vim /etc/mongod.conf (или любой другой редактор)
bindIp 127.0.0.1 -> bindIp: 127.0.0.1,172.17.0.1
Сохраняем - sudo service mongod restart
DB_URL=mongodb://mongoservice:27017/socialHamsterTest
PORT=5000
JWT_ACCESS_SECRET=dskfj2093jkfdsj0394j1fj3hj3
JWT_REFRESH_SECRET=jh4g6j2hgu234hv6h2uehv23h4g
NODE_ENV=development
sudo docker build -t social_hamster_back .
Запуск в консоли:
sudo docker run -it --add-host=mongoservice:172.17.0.1 -p 5000:5000 social_hamster_back
Запуск в фоне:
sudo docker run -d --add-host=mongoservice:172.17.0.1 -p 5000:5000 social_hamster_back