Перейти к содержанию

Implementation status

A cut of the code at the time of writing. «Done» means the scenario exists in routes and models. «Partial» means neighbouring behaviour exists, but not the BRD rule. «Absent» means the route is a 501 stub or the entity was not found. What was not checked is marked as such.

The BRD does not change because of this page.

BRD domain Fact in the code
Email registration, FR-О-01 Partial. Register, sign-in, a 6-digit code (not a 24-hour link), refresh, and logout exist. Password recovery is not in auth.py
Minimum fields, FR-О-02 Partial. Roles are split across /auth/candidate and /auth/employer. The password is set at registration, not after the letter
Yandex ID and Gosuslugi, FR-О-03 Absent. FSP ID only links a profile
2FA, FR-О-04 Absent. No second-factor table or routes were found
Roles and 403, FR-О-05 Done at the level of require_roles and owner checks. The automated «0 foreign successes» run was not executed in this cut
Account ban, FR-О-13 Partial. The admin ban list is described in docs/ADMIN.md (companies, tax ids, email, domains). The candidate screen with a reason and a term was not compared line by line
Resume and PDF, FR-К-01, FR-К-02 Done: own resume, a second resume, PDF upload through RouterAI when the key is set
11 grades and a category, FR-К-09, FR-К-18 Partial. Grade has five values: intern, junior, middle, senior, lead. CandidateCategory and attempts exist
Survey, FR-К-08 Absent. POST /assessments/survey returns 501
Test, code, interview, FR-К-10, FR-К-14 Partial. Attempts, code run, finish, and the interview status exist. Camera and screen proctoring were not found in the models
Cooldown and history, FR-К-19, FR-К-20 Partial. GET /assessments/me returns categories, pauses, and attempt history. The set of 11 grades does not match the BRD
Privacy and pause, FR-К-33, FR-К-34 Partial. The search status not_looking exists. The full set of visibility toggles was not compared line by line
FSP, FR-К-36, FR-К-38 Done in mock mode: authorize, callback, sync, unlink. An empty registry is not an error
Account deletion, FR-К-39 Not found in the auth and candidates routes
Statuses and band, FR-О-06, FR-О-07 Partial. A vacancy band is validated. An invitation has no «Отозвано» or «Истекло». The invitation routes themselves are 501
Contact reveal, FR-О-08 Partial. The candidate card cuts fields by backend rules. An audit row for every contact view was not confirmed in this cut
Chat, FR-О-09 Done: conversations and attachments. The rule «one chat per need» is not confirmed: there is no need entity
Meetings, FR-О-10 Done: calendar, schedule, move, confirm. This is extra in the BRD
Notifications, FR-О-11 Partial. The /notifications route exists. Email per event type was not compared
Need and shortlist, FR-Р-02 through FR-Р-09 Absent. matching create need and recommendations are 501. Shortlist versions are not in the models
Bank and employer swipes, FR-Р-10, FR-Р-12 Partial. Candidate search and reactions exist. That is not a shortlist for a need
Invitation, FR-Р-14, FR-Р-15 Absent. Every /invitations method is 501. There is no one-off offer
Vacancies and applications, FR-Р-19, FR-К-31 Partial. The feed and reactions exist. Creating and editing a vacancy is 501. Applications /applications are 501. Mutual interest goes through /responses
Take-homes, FR-Р-21 Done as company assignments and a candidate taking them. Assembly from patterns with load-bearing elements is absent
Admin patterns and validation, FR-А-02 through FR-А-22 Partial. The app/admin package: task bank, analytics on a button, parameters, dictionaries, audit log, ban list, company verification. LLM-persona calibration, one-shot, a proctoring queue, and K1/K2 reference runs were not found in the routes

Where this page says «not compared» or «not found», that is the edge of this cut, not proof that the behaviour is absent from every frontend file.