Skip to content

BE-14: Session Management Implementation #14

@tecnodeveloper

Description

@tecnodeveloper

Description:
Implement session system for chatbot. User starts chat → session created → messages stored in MongoDB → context maintained → backend uses session history for responses → done.


User Story

Given user is chatting with bot
When messages are sent
Then system should store and manage conversation in a session


Tasks


Backend Setup (Flask / FastAPI)

  1. Create Session Module

    • /app/routes/session.py
    • /app/controllers/session_controller.py
    • /app/services/session_service.py

MongoDB Setup

  1. Create Sessions Collection

    • Collection: sessions
    • Index on user_id
  2. Define Session Schema

    • session_id
    • user_id
    • messages (array)
    • created_at
    • updated_at
  3. Define Message Schema

    • role (user / assistant)
    • content
    • timestamp

Session Creation

  1. Create Session API

    • POST /session/create
    • Generate unique session_id
    • Save to MongoDB
  2. Return Session ID

    • Send session_id to frontend

Message Handling

  1. Add Message API

    • POST /session/{id}/message
    • Accept user message
  2. Store User Message

    • Append message to session
    • Save in MongoDB

Chat Integration

  1. Connect with LLaMA Model

    • Fetch session history
    • Build context window
    • Send to model
  2. Store Bot Response

  • Save assistant reply
  • Append to session

Context Management

  1. Maintain Context Window
  • Limit message history
  • Keep last N messages
  • Remove old data if needed
  1. Session Memory Handling
  • Preserve conversation flow
  • Ensure relevance in replies

Session Retrieval

  1. Get Session API
  • GET /session/{id}
  • Return full chat history
  1. Get User Sessions
  • GET /sessions/user/{user_id}
  • List all sessions

Frontend Integration

  1. Store Session ID
  • Save session_id after creation
  • Attach to every chat request
  1. Load Chat History
  • Fetch session on page load
  • Render messages

State Management

  1. Frontend State Update
  • Update chat UI in real-time
  • Append new messages instantly

Postman Testing 🧪

  1. Setup Postman
  • Create session
  • Send message request
  1. Test APIs
  • /session/create
  • /session/{id}/message
  • /session/{id}
  1. Validate Responses
  • Check message storage
  • Verify session updates

Run & Validate

  1. Run Backend
  • Start server
  • Fix errors
  1. Test Full Flow
  • Create session
  • Send messages
  • Check MongoDB updates
  • Verify chatbot response

Acceptance Criteria

  • Session creation works
  • Messages stored in MongoDB
  • Context maintained properly
  • Chat flow connected with model
  • Postman tests completed
  • Frontend integrated

Testing Steps

  1. Start backend
  2. Create session
  3. Send messages
  4. Verify DB updates
  5. Check chatbot response
  6. Load session history in UI

Definition of Done

  • Session system fully working
  • MongoDB integration complete
  • Chat memory working
  • Backend + frontend connected

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions