[go: up one dir, main page]

Skip to content

"InfoHub: A collaborative platform for writing and sharing articles. Built with Java, Spring Boot, and Google OAuth2." "InfoHub: Веб-платформа для создания и публикации статей. Построено с использованием Java, Spring Boot и Google OAuth2."

License

Notifications You must be signed in to change notification settings

EchoMinds/InfoHub

Repository files navigation

,--.         ,---.        ,--.  ,--.        ,--.
|  |,--,--, /  .-' ,---.  |  '--'  |,--.,--.|  |-.
|  ||      \|  `-,| .-. | |  .--.  ||  ||  || .-. '
|  ||  ||  ||  .-'' '-' ' |  |  |  |'  ''  '| `-' |
`--'`--''--'`--'   `---'  `--'  `--' `----'  `---'

InfoHub

Русская версия


InfoHub — это веб-платформа, где пользователи могут создавать, управлять и делиться своими статьями. Наша цель — предоставить пространство для совместного написания статей, где каждый может публиковать свои знания, идеи или истории. Платформа также включает систему рейтинга, которая помогает выделить качественный контент.


Возможности

  • Создание статей: Пользователи могут легко создавать и публиковать свои статьи.
  • Пользовательские профили: У каждого пользователя есть настраиваемый профиль для отображения статей.
  • Теги и категории: Статьи можно отмечать тегами и размещать в категориях для удобной навигации.
  • Взаимодействие с сообществом: Пользователи могут оценивать, комментировать и делиться статьями.
  • Система рейтинга: Статьи ранжируются по оценкам пользователей, чтобы выделить лучшие материалы.
  • OAuth2 вход через Google: Безопасный вход и регистрация через Google OAuth2.
  • Адаптивный дизайн: Платформа оптимизирована для работы как на компьютерах, так и на мобильных устройствах.
  • Поиск и фильтры: Расширенный поиск позволяет находить статьи по ключевым словам, тегам и категориям.

Технологический стек

  • Java: 21
  • Spring Boot: 3.3
  • Spring Security: 6.3 (с OAuth2 через Google)
  • База данных: PostgreSQL
  • Сборка: Gradle Kotlin DSL

Начало работы

Необходимые компоненты

Для локального запуска проекта вам потребуется:

  • Java 21
  • Gradle 8.x (с Kotlin DSL)
  • PostgreSQL
  • Docker

Установка

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

    git clone https://github.com/EchoMinds/InfoHub.git
  2. Откройте терминал и перейдите в директорию проекта:

    cd InfoHub
  3. Создайте файл application.yaml на основе файла application.yaml.original, добавив свои данные для подключения Google Oauth2:

    spring:
      security:
        oauth2:
          client:
            registration:
              google:
                client-id: ваш_client_id
                client-secret: ваш_client_secret
  4. Запустите докер на вашем компьютере и соберите проект с помощью Gradle:

./gradlew clean build
  1. С помощью докера создайте контейнеры, для этого впишите в терминал:

    docker-compose up

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

После запуска приложения откройте следующий адрес:

http://localhost:8080/swagger-ui/index.html#/

Вы увидите документацию к Api созданную автоматически, благодаря технологии OpenApi3.


Вклад в проект

Мы рады любому вкладу! Если вы хотите внести вклад в проект, пожалуйста, прочтите CONTRIBUTING.md. Делайте форк репозитория, создавайте новую ветку и отправляйте pull request. Убедитесь, что ваш код соответствует нашим стандартам.


Лицензия

Проект лицензирован Apache лицензией.


English Version

InfoHub is a web platform where users can create, manage, and share their articles. Our goal is to provide a space for collaborative article writing, where everyone can publish their knowledge, ideas, or stories. The platform also includes a rating system that helps highlight quality content.


Features

  • Article creation: Users can easily create and publish their articles.
  • User profiles: Each user has a customizable profile to showcase their articles.
  • Tags and categories: Articles can be tagged and placed into categories for easy navigation.
  • Community interaction: Users can rate, comment, and share articles.
  • Rating system: Articles are ranked based on user ratings to highlight the best content.
  • OAuth2 login via Google: Secure login and registration through Google OAuth2.
  • Responsive design: The platform is optimized for both desktop and mobile devices.
  • Search and filters: Advanced search allows you to find articles by keywords, tags, and categories.

Technology Stack

  • Java: 21
  • Spring Boot: 3.3
  • Spring Security: 6.3 (with OAuth2 via Google)
  • Database: PostgreSQL
  • Build: Gradle Kotlin DSL

Getting Started

Requirements

To run the project locally, you will need:

  • Java 21
  • Gradle 8.x (with Kotlin DSL)
  • PostgreSQL
  • Docker

Installation

  1. Clone the repository:

    git clone https://github.com/EchoMinds/InfoHub.git
  2. Open the terminal and navigate to the project directory:

    cd InfoHub
  3. Create an application.yaml file based on application.yaml.original, adding your Google OAuth2 credentials:

    spring:
      security:
        oauth2:
          client:
            registration:
              google:
                client-id: your_client_id
                client-secret: your_client_secret
  4. Start Docker on your machine and build the project using Gradle:

    ./gradlew clean build
  5. Use Docker to create the containers by running the following in the terminal:

    docker-compose up

Usage

After the application is running, open the following address:

http://localhost:8080/swagger-ui/index.html#/

You will see the API documentation, automatically generated with OpenApi3.


Contributing

We welcome any contributions!
If you wish to contribute to the project, please read CONTRIBUTING.md.
Fork the repository, create a new branch, and submit a pull request. Make sure your code follows our standards.


License

The project is licensed under the Apache License.

About

"InfoHub: A collaborative platform for writing and sharing articles. Built with Java, Spring Boot, and Google OAuth2." "InfoHub: Веб-платформа для создания и публикации статей. Построено с использованием Java, Spring Boot и Google OAuth2."

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published