JetBrains-Research / JetBrains-Research/Python-Solution-Preference

[020] Slack-like Team Chat (MVP)

Đang mở
#20 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Không có dữ liệu ngôn ngữ
Star
2
Fork
0
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

## Overview

Team chat with 5 fixed users from `assets/users.csv` (columns: `username`, `display_name`, `password`). Login required; invalid credentials rejected.

Build this as a Python backend service with no UI; expose the functionality below through an HTTP API.

## Features

### #general Channel
- Single public channel visible to all users
- Messages returned chronologically (oldest first, newest last)

### Direct Messages (DMs)
- 1:1 private conversations between any two users
- Start DM via user search (case-insensitive partial match on username or display_name, excludes self)
- One DM thread per user pair; selecting same user reopens existing conversation
- A user's DM conversations can be listed alongside `#general`

### Messaging (both #general and DMs)
- Text messages only; whitespace-only rejected, max 2000 characters
- Messages immutable (no edit/delete)

### Search
- Global search across `#general` and the user's own DMs (not others' private DMs)
- Case-insensitive partial text match, results newest-first
- Each result identifies the conversation it belongs to

## Out of Scope
Multiple channels, group DMs, file uploads, reactions, threads, typing indicators

---
**Provided starting files:** see [`020-team-chat/assets/`](https://github.com/JetBrains-Research/Python-Solution-Preference/tree/main/020-team-chat/assets) — these were in the agent's working directory when it solved the task.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Start by reading the provided files in 020-team-chat/assets/, especially assets/users.csv and its username, display_name, and password columns. Define the HTTP API around login, #general, one-to-one DMs, messaging, user search, conversation listing, and global search. Done means invalid credentials and invalid messages are rejected, private results stay scoped to the user, and all stated ordering and out-of-scope rules are met.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python
Lĩnh vực
api, backend
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.