| Calculation of Basic and Diluted Net Income per Common Share | 
 The following table sets forth the calculation of basic and diluted net income per common share: 
  
      
       
         | 
         | 
         | 
         | 
         | 
         | 
         | 
         | 
         | 
         | 
         | 
         | 
         | 
         | 
         | 
         | 
         | 
        
       
           | 
           | 
        Three Months Ended  | 
           | 
           | 
        Nine Months Ended  | 
           | 
        
       
           | 
           | 
        August 31, 2022  | 
           | 
           | 
        August 31, 2021  | 
           | 
           | 
        August 31, 2022  | 
           | 
           | 
        August 31, 2021  | 
           | 
        
       
        Numerator:  | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
        
       
        Net income  | 
           | 
        $  | 
        466,820  | 
           | 
           | 
        $  | 
        856,494  | 
           | 
           | 
        $  | 
        1,933,586  | 
           | 
           | 
        $  | 
        2,720,713  | 
           | 
        
       
        Denominator:  | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
        
       
        Weighted-average shares outstanding-basic  | 
           | 
           | 
        8,390,335  | 
           | 
           | 
           | 
        8,452,374  | 
           | 
           | 
           | 
        8,449,277  | 
           | 
           | 
           | 
        7,996,278  | 
           | 
        
       
        Dilutive common shares issuable upon exercise of    stock options  | 
           | 
           | 
        14,150  | 
           | 
           | 
           | 
        239,957  | 
           | 
           | 
           | 
        26,384  | 
           | 
           | 
           | 
        221,176  | 
           | 
        
       
        Weighted-average shares-diluted  | 
           | 
           | 
        8,404,485  | 
           | 
           | 
           | 
        8,692,331  | 
           | 
           | 
           | 
        8,475,661  | 
           | 
           | 
           | 
        8,217,454  | 
           | 
        
       
        Income  per share:  | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
           | 
        
       
        Basic  | 
           | 
        $  | 
        0.06  | 
           | 
           | 
        $  | 
        0.10  | 
           | 
           | 
        $  | 
        0.23  | 
           | 
           | 
        $  | 
        0.34  | 
           | 
        
       
        Diluted  | 
           | 
        $  | 
        0.06  | 
           | 
           | 
        $  | 
        0.10  | 
           | 
           | 
        $  | 
        0.23  | 
           | 
           | 
        $  | 
        0.33  | 
           | 
        
       
 |