Quarterly report pursuant to Section 13 or 15(d)

Stockholders' Equity - Narrative (Details)

v3.21.2
Stockholders' Equity - Narrative (Details)
3 Months Ended
Jul. 21, 2021
USD ($)
$ / shares
shares
Feb. 04, 2020
$ / shares
Jul. 31, 2021
USD ($)
plan
$ / shares
shares
Jul. 31, 2020
USD ($)
shares
Apr. 30, 2021
USD ($)
shares
Dec. 21, 2020
shares
Dec. 20, 2020
shares
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]              
Number of stock-based incentive plans | plan     2        
Common stock, shares authorized (in shares) | shares     40,000,000   40,000,000    
Share price (in dollars per share) | $ / shares   $ 9.49          
Common stock issued for stock options exercised for cash     $ 22,548 $ 1,269,982      
Unrecognized compensation costs     55,007        
Stock based compensation expense     $ 542,712 487,110      
Treasury stock (in shares) | shares     155,486   155,486    
Treasury stock, value     $ 1,817,414   $ 1,817,414    
Modification charge for warrants exercised       $ 25,966      
Cooperman Warrants              
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]              
Number of securities called by warrants or rights (in shares) | shares     192,049        
Modification charge for warrants exercised     $ 25,966        
Restricted Stock              
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]              
Unvested shares of restricted common stock outstanding (in shares) | shares     8,224 16,448 8,224    
Total unrecognized compensation expense     $ 17,545        
Weighted average recognition period     5 months 1 day        
Stock based compensation expense     $ 10,527 $ 10,524      
Restricted Stock Units (RSUs)              
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]              
Unvested shares of restricted common stock outstanding (in shares) | shares     653,937   549,972    
Total unrecognized compensation expense     $ 3,972,803        
Weighted average recognition period     1 year 5 months 26 days        
Restricted shares granted (in shares) | shares     127,542        
Amortization expense     $ 112,155 111,211      
Stock based compensation expense     $ 446,777 307,852      
Restricted Stock Units (RSUs) | Share-based Payment Arrangement, Tranche Three              
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]              
Unvested shares of restricted common stock outstanding (in shares) | shares     195,000        
Total unrecognized compensation expense     $ 1,121,555        
Weighted average recognition period   4 years          
Minimum closing price of common stock (in dollars per share) | $ / shares   $ 12          
Consecutive trading days   20 days          
Restricted Stock Units (RSUs) | Chief Executive Officer              
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]              
Restricted shares granted (in shares) | shares 125,000   125,000        
Fair value of RSUs $ 873,750            
Share price (in dollars per share) | $ / shares $ 6.99            
Expiration period of award 3 years            
Amortization expense $ 72,813            
Amortization period of expense 1 year            
Restricted Stock Units (RSUs) | Employees              
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]              
Restricted shares granted (in shares) | shares     2,542        
Fair value of RSUs     $ 14,943        
Vesting period of award (in years)     3 years        
Restricted Stock Units (RSUs) | Employees | Minimum              
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]              
Grant price of award (in dollars per share) | $ / shares     $ 4.92        
Restricted Stock Units (RSUs) | Employees | Maximum              
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]              
Grant price of award (in dollars per share) | $ / shares     $ 6.50        
Warrant | Former Board of Director              
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]              
Amortization expense     $ 2,333        
Number of securities called by warrants or rights (in shares) | shares 25,000            
Exercise price of warrants (in dollars per share) | $ / shares $ 6.99            
Exercise period of warrant 5 years            
Vesting period of warrant 3 years            
Fair value of warrants outstanding $ 84,000            
Stock options              
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]              
Weighted average recognition period     1 year        
Stock based compensation expense     $ 85,408 $ 168,734      
2018 Equity Incentive Plan              
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]              
Common stock, shares authorized (in shares) | shares           1,600,000 1,100,000
Common stock, shares remaining for future issuance (in shares) | shares     549,739   549,739    
Equity Incentive Plan              
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]              
Common stock, shares remaining for future issuance (in shares) | shares     431,869   431,869