{"id":18763016,"url":"https://github.com/HireHoffee/Web-Mail","last_synced_at":"2025-12-30T21:22:07.122Z","repository":{"id":133800122,"uuid":"577791649","full_name":"Hire-Hoffee/Web-Mail","owner":"Hire-Hoffee","description":"Приложение для участия в VK Cup 2022","archived":false,"fork":false,"pushed_at":"2025-02-15T13:50:42.000Z","size":56509,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-15T14:24:04.016Z","etag":null,"topics":["axios","backend","competition","frontend","i18n","nodejs","react","redux","slate","styled-components"],"latest_commit_sha":null,"homepage":"http://petwebmail.ydns.eu","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Hire-Hoffee.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-13T14:33:20.000Z","updated_at":"2025-02-15T13:50:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"600c0bab-667e-4f0f-82c0-cd6b8519b535","html_url":"https://github.com/Hire-Hoffee/Web-Mail","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hire-Hoffee%2FWeb-Mail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hire-Hoffee%2FWeb-Mail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hire-Hoffee%2FWeb-Mail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hire-Hoffee%2FWeb-Mail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hire-Hoffee","download_url":"https://codeload.github.com/Hire-Hoffee/Web-Mail/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239661779,"owners_count":19676409,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["axios","backend","competition","frontend","i18n","nodejs","react","redux","slate","styled-components"],"created_at":"2024-11-07T18:24:23.629Z","updated_at":"2025-12-30T21:22:07.091Z","avatar_url":"https://github.com/Hire-Hoffee.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VK Cup 22/23\n\n## Упрощённая веб-версия почты\n\n- Ссылка на [приложение](http://petwebmail.freemyip.com).\n- [Комплект тестовых данных](https://cloud.mail.ru/public/kLv4/mYrohjF9k).\n- Дизайн [figma](\u003chttps://www.figma.com/file/TUIFDmBXvhjeqHdIv3KW7f/VK-Cup-2022-(2)\u003e).\n- [Презентация проекта](https://docs.google.com/presentation/d/1EKmwgqBBrcyU9DvVRfKy7KlfONIlUulJS9pQHHUdUOs/edit?usp=sharing)\n- [Техническое задание](./Техническое%20задание.md)\n\n### Описание\n\nДанный проект представляет собой упрощенную веб-версию почтового клиента, разработанную для участия в VK Cup 22/23. Приложение предоставляет базовый функционал для работы с электронной почтой, включая:\n\n- Отображение списка папок.\n- Отображение списка писем в выбранной папке.\n- Отображение содержимого письма.\n- Фильтрация писем по различным критериям.\n- Интернационализация (поддержка русского и английского языков).\n- Темизация (несколько цветовых схем, включая светлую, темную и тематическую).\n- Бесконечная прокрутка списка писем.\n- Интерфейс создания письма.\n\n\u003cbr/\u003e\n\n![Dark theme](https://i.imgur.com/Xu98oZY.png \"Dark theme\")\n![Message](https://i.imgur.com/y7I8ZXK.png \"Message\")\n![Light theme](https://i.imgur.com/DVg21s4.png \"Light theme\")\n![Colored theme](https://i.imgur.com/KHASe2n.png \"Colored theme\")\n\n### Технологии\n\n#### Frontend\n\nReact, React Router, Styled Components, i18next, Redux, react-redux, Slate, Axios, redux/toolkit.\n\n#### Backend\n\nNode.js, http, path, fs, stream-json, mongodb, dotenv.\n\n### Архитектура\n\nПриложение использует клиент-серверную архитектуру. Frontend отвечает за отображение пользовательского интерфейса и взаимодействие с пользователем. Backend обрабатывает запросы от Frontend, предоставляет данные и выполняет бизнес-логику.\n\n- **Frontend**: React приложение, которое выполняется в браузере пользователя. React Router используется для маршрутизации между различными страницами приложения (список папок, список писем, просмотр письма). Styled Components отвечают за стилизацию компонентов. i18next обеспечивает интернационализацию. Redux используется для управления состоянием приложения, включая темы, фильтры, язык и прочие настройки. Slate используется для создания rich text редактора при создании письма. Axios используется для отправки HTTP запросов к backend.\n- **Backend**: Node.js сервер, который обрабатывает HTTP запросы от Frontend. Сервер использует встроенные модули Node.js для работы с HTTP, файловой системой, и для загрузки переменных окружения. Backend подключается к MongoDB для получения данных о письмах и пользователях.\n\n### Особенности\n\n- **Бесконечная прокрутка**: при достижении конца списка писем Frontend автоматически запрашивает следующую порцию писем с backend.\n- **Обработка изображений**: backend конвертирует изображения из формата base64 в jpg и сохраняет их в файловую систему, предоставляя Frontend относительные пути к изображениям.\n- **Хранение данных**: данные о письмах и пользователях хранятся в базе данных MongoDB.\n- **Кэширование данных**: Backend кэширует загруженные данные в файле db.json для ускорения последующих запросов.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHireHoffee%2FWeb-Mail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FHireHoffee%2FWeb-Mail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHireHoffee%2FWeb-Mail/lists"}