opensanctions / opensanctions/poliloom

Server-side evaluation session tracking

Open
#98 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

gui loom
Dominant language
Python
Stars
22
Forks
2
PR merge metrics
No merged PRs in 30d

Description

Overview

Track evaluation sessions on the server to maintain a history of user activity. Currently sessions are managed client-side only and are lost when the browser session ends.

Motivation

  • Persist session history across browser sessions
  • Enable user stats features (#96) that require historical data
  • Support future features like session resumption

Feature Description

Backend
  • New data model for sessions (user, start time, end time, politicians evaluated)
  • API endpoints:
    • POST /sessions - Create a new session when user starts evaluating
    • PATCH /sessions/{id} - Update session (mark complete, update count)
    • GET /sessions - List user's session history
Frontend
  • Update EvaluationSessionContext to sync with backend
  • Session ID persisted and sent with evaluation submissions

Notes

This is a prerequisite for accurate user stats (#96) - specifically tracking "sessions completed" requires server-side session records.


Supersedes session tracking aspects from #82.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the Backend and Frontend sections, then inspect EvaluationSessionContext and the existing evaluation submission flow. Define the session model and the POST, PATCH, and GET /sessions entry points, and verify that session IDs and history synchronize across browser sessions. Done means session records support creation, updates, listing, and frontend syncing.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend, database, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.