Untone 56db33d7f1
All checks were successful
Deploy on push / deploy (push) Successful in 55s
get_my_rates_comments-fix
2025-02-04 02:53:01 +03:00
2024-11-01 14:33:34 +03:00
2024-11-01 15:06:21 +03:00
..
2024-11-14 14:00:33 +03:00
2025-02-04 02:53:01 +03:00
2024-12-17 20:06:15 +03:00
2025-01-25 11:23:20 +03:00
2025-02-04 02:53:01 +03:00
2024-12-04 17:40:45 +03:00
2025-01-28 15:38:10 +03:00
2024-10-14 02:05:20 +03:00
2024-02-19 16:29:05 +03:00
..
2024-11-14 14:00:33 +03:00
2024-12-12 01:04:11 +03:00
2024-06-04 09:10:52 +03:00
2024-02-21 23:12:47 +03:00
2025-02-04 02:53:01 +03:00
312
2024-10-13 00:49:06 +03:00
2023-10-30 22:00:55 +01:00
2025-02-03 23:16:50 +03:00
2024-12-12 01:04:11 +03:00
2024-12-12 01:04:11 +03:00
2024-12-16 18:57:10 +03:00

GraphQL API Backend

Backend service providing GraphQL API for content management system with reactions, ratings and comments.

Core Features

Shouts (Posts)

  • CRUD operations via GraphQL mutations
  • Rich filtering and sorting options
  • Support for multiple authors and topics
  • Rating system with likes/dislikes
  • Comments and nested replies
  • Bookmarks and following

Reactions System

  • ReactionKind types: LIKE, DISLIKE, COMMENT
  • Rating calculation for shouts and comments
  • User-specific reaction tracking
  • Reaction stats and aggregations
  • Nested comments support

Authors & Topics

  • Author profiles with stats
  • Topic categorization and hierarchy
  • Following system for authors/topics
  • Activity tracking and stats
  • Community features

Tech Stack

Development

Setup

Start API server with dev keyword added and mkcert installed:

mkdir .venv
python3.12 -m venv .venv
poetry env use .venv/bin/python3.12
poetry update

mkcert -install
mkcert localhost
poetry run server.py dev

Useful Commands

# Linting and import sorting
poetry run ruff check . --fix --select I 

# Code formatting
poetry run ruff format . --line-length=120 

# Run tests
poetry run pytest

# Type checking
poetry run mypy .

Code Style

We use:

  • Ruff for linting and import sorting
  • Line length: 120 characters
  • Python type hints
  • Docstrings for public methods

GraphQL Development

Test queries in GraphQL Playground at http://localhost:8000:

# Example query
query GetShout($slug: String) {
  get_shout(slug: $slug) {
    id
    title
    main_author {
      name
    }
  }
}
Description
ядро платформы
Readme MIT 12 MiB
Languages
Python 74.6%
TypeScript 19.2%
CSS 6.1%