Skip to content

BE-14: Session Management Implementation #14

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions