Skip to content

RedNews — это современный онлайн-портал, предназначенный для публикации новостей, статей и управления ими 📑

License

Notifications You must be signed in to change notification settings

Adamanr/RedNews

Repository files navigation

Новостной портал - RedNews 📰

RedNews — это современный онлайн-портал, предназначенный для публикации новостей, статей и управления ими. Этот инструмент позволяет вам создавать и публиковать статьи, делиться последними новостями, а также быть в курсе новых публикаций. Используя функционал Новостного портала, вы получаете следующие возможности:

  • Публиковать статьи и новости: Вы можете добавлять новые материалы, указывая заголовок, содержание, категорию и теги, что делает процесс создания контента удобным и быстрым 📝
  • Создавать каналы: Для удобства организации контента у вас есть возможность создавать тематические каналы, которые помогут структурировать информацию и упростят управление 📂
  • Фильтровать и сортировать: Благодаря встроенным фильтрам по категориям, тегам и датам публикации, вы легко найдете нужный материал за считанные секунды 🔍
  • Взаимодействовать с контентом: Портал предоставляет функции лайков, благодаря которым пользователи могут выражать свое мнение и взаимодействовать с опубликованными материалами ❤️

 📸

Технологии 💻

  • Язык: Elixir 🧪
  • База данных: PostgreSQL 🗄️
  • Библиотеки:
    • Ecto {3.10} 📚
    • Phoenix {1.7} 📚
    • Tailwind {0.2} 📚
    • ExDoc {0.36} 📚
  • ORM: Ecto 🛠️
  • Шаблонизатор: HEEx 📝

Установка и запуск 🚀

1. Установите зависимости

Убедитесь, что у вас установлены:

  • Elixir (версия 1.18.1) 🧪
  • PostgreSQL (версия 15) 🗄️
  • Node.js (версия 16 или выше) 📦

2. Клонируйте репозиторий

git clone https://github.com/adamanq/rednews.git
cd rednews

3. Установите зависимости проекта

mix deps.get

4. Настройте базу данных

Создайте базу данных и настройте подключение в файле config/dev.exs:

config :rednews, Rednews.Repo,
  username: "your_db_user",
  password: "your_db_password",
  database: "rednews_dev",
  hostname: "localhost",
  port: 5432,
  pool_size: 10

Создайте и выполните миграции:

mix ecto.create
mix ecto.migrate

5. Запустите приложение

mix phx.server

Приложение будет доступно по адресу: http://localhost:4000. 🌐

Если вы хотите запустить в контейнере 📦

❗️❗️ На данный момент стабильность работы приложения в контейнере оставляет желать лучшего, поэтому рекомендуется воспользоваться стандартным методом сборки ❗️❗️

6. Соберите образ портала

docker build . 

7. Запустите группу контейнеров из приложения и бд

docker-compose up --build

8. Установите зависимости проекта

docker-compose exec web mix deps.get 

9. Настройте базу данных

Создайте базу данных и настройте подключение в файле config/dev.exs:

config :rednews, Rednews.Repo,
  username: "your_db_user",
  password: "your_db_password",
  database: "rednews_dev",
  hostname: "db",
  port: 5432,
  pool_size: 10

Создайте и выполните миграции:

docker-compose exec web mix deps.get
docker-compose exec app mix ecto.migrate

Приложение будет доступно по адресу: http://localhost:4000. 🌐

Использование 📖

  1. Регистрация и вход: Создайте аккаунт или войдите в систему
  2. Публикация контента: Добавьте статью или новость, выбрав категорию и теги
  3. Фильтрация и поиск: Используйте фильтры для поиска нужных материалов
  4. Лайки и комментарии: Взаимодействуйте с контентом, выражая своё мнение

Структура проекта 🗂️

  • lib/rednews — Основной код приложения
    • accounts.ex — Контекст для работы с пользователями и каналами 👤
    • posts.ex — Контекст для работы с статьями, новостями, лайками, комментариями 📝
  • priv/repo/migrations — Миграции базы данных 🗄️
  • assets/ — Фронтенд-ресурсы (CSS, JavaScript) 🎨
  • config/ — Конфигурационные файлы ⚙️

Лицензия 📜

Этот проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE.

Автор 👤

Как внести вклад 🤝

Если вы хотите улучшить проект, следуйте этим шагам:

  1. Форкните репозиторий. 🍴
  2. Создайте ветку для вашей функции (git checkout -b feature/AmazingFeature) 🌿
  3. Зафиксируйте изменения (git commit -m 'Add some AmazingFeature') 💾
  4. Отправьте изменения в ваш форк (git push origin feature/AmazingFeature) 🚀
  5. Создайте Pull Request 📥

Если у вас есть вопросы или предложения, создайте Issue или свяжитесь со мной! 📩

About

RedNews — это современный онлайн-портал, предназначенный для публикации новостей, статей и управления ими 📑

Topics

Resources

License

Security policy

Stars

Watchers

Forks