@@ -43,8 +43,25 @@ <h1>Practice radiology reporting with your own cases</h1>
4343 < a href ="#how-it-works " class ="btn btn-secondary "> Learn More</ a >
4444 </ div >
4545 < div class ="hero-image ">
46- < div class ="screenshot-placeholder ">
47- < span > Screenshots coming soon</ span >
46+ < div class ="carousel " id ="carousel ">
47+ < div class ="carousel-track ">
48+ < div class ="carousel-slide active "> < img src ="screenshots/1. muninn-admin-home.png " alt ="Home "> </ div >
49+ < div class ="carousel-slide "> < img src ="screenshots/2.1 muninn-admin-organizer.png " alt ="DICOM Organizer "> </ div >
50+ < div class ="carousel-slide "> < img src ="screenshots/2.2 muninn-admin-organizer-2.png " alt ="DICOM Organizer "> </ div >
51+ < div class ="carousel-slide "> < img src ="screenshots/3. muninn-admin database.png " alt ="Case Database "> </ div >
52+ < div class ="carousel-slide "> < img src ="screenshots/3.1 muninn-admin database analytics.png " alt ="Database Analytics "> </ div >
53+ < div class ="carousel-slide "> < img src ="screenshots/4.0 muninn-admin playlist.png " alt ="Playlist Builder "> </ div >
54+ < div class ="carousel-slide "> < img src ="screenshots/5 muninn-admin exam-builder.png " alt ="Exam Builder "> </ div >
55+ < div class ="carousel-slide "> < img src ="screenshots/6.0 muninn-admin exam marker.png " alt ="Exam Marker "> </ div >
56+ < div class ="carousel-slide "> < img src ="screenshots/7.0 muninn-admin dashboard registry.png " alt ="Trainee Registry "> </ div >
57+ < div class ="carousel-slide "> < img src ="screenshots/7.1 muninn-admin dashboard overview.png " alt ="Dashboard Overview "> </ div >
58+ < div class ="carousel-slide "> < img src ="screenshots/7.2 muninn-admin trainee-analytics.png " alt ="Trainee Analytics "> </ div >
59+ < div class ="carousel-slide "> < img src ="screenshots/8.0 muninn-admin SQL database.png " alt ="SQL Database "> </ div >
60+ </ div >
61+ < button class ="carousel-btn carousel-prev " aria-label ="Previous "> ←</ button >
62+ < button class ="carousel-btn carousel-next " aria-label ="Next "> →</ button >
63+ < div class ="carousel-caption "> </ div >
64+ < div class ="carousel-dots "> </ div >
4865 </ div >
4966 </ div >
5067 </ div >
@@ -347,6 +364,48 @@ <h2>Licensing</h2>
347364 </ div >
348365 </ footer >
349366 < script >
367+ ( function ( ) {
368+ var carousel = document . getElementById ( 'carousel' ) ;
369+ if ( ! carousel ) return ;
370+ var slides = carousel . querySelectorAll ( '.carousel-slide' ) ;
371+ var captionEl = carousel . querySelector ( '.carousel-caption' ) ;
372+ var dotsEl = carousel . querySelector ( '.carousel-dots' ) ;
373+ var current = 0 ;
374+ var timer ;
375+
376+ // Build dots
377+ slides . forEach ( function ( slide , i ) {
378+ var dot = document . createElement ( 'button' ) ;
379+ dot . className = 'carousel-dot' + ( i === 0 ? ' active' : '' ) ;
380+ dot . setAttribute ( 'aria-label' , 'Go to slide ' + ( i + 1 ) ) ;
381+ dot . addEventListener ( 'click' , function ( ) { goTo ( i ) ; resetTimer ( ) ; } ) ;
382+ dotsEl . appendChild ( dot ) ;
383+ } ) ;
384+
385+ function goTo ( n ) {
386+ slides [ current ] . classList . remove ( 'active' ) ;
387+ dotsEl . children [ current ] . classList . remove ( 'active' ) ;
388+ current = ( n + slides . length ) % slides . length ;
389+ slides [ current ] . classList . add ( 'active' ) ;
390+ dotsEl . children [ current ] . classList . add ( 'active' ) ;
391+ captionEl . textContent = slides [ current ] . querySelector ( 'img' ) . alt ;
392+ }
393+
394+ function resetTimer ( ) {
395+ clearInterval ( timer ) ;
396+ timer = setInterval ( function ( ) { goTo ( current + 1 ) ; } , 4000 ) ;
397+ }
398+
399+ carousel . querySelector ( '.carousel-prev' ) . addEventListener ( 'click' , function ( ) { goTo ( current - 1 ) ; resetTimer ( ) ; } ) ;
400+ carousel . querySelector ( '.carousel-next' ) . addEventListener ( 'click' , function ( ) { goTo ( current + 1 ) ; resetTimer ( ) ; } ) ;
401+ carousel . addEventListener ( 'mouseenter' , function ( ) { clearInterval ( timer ) ; } ) ;
402+ carousel . addEventListener ( 'mouseleave' , resetTimer ) ;
403+
404+ goTo ( 0 ) ;
405+ resetTimer ( ) ;
406+ } ) ( ) ;
407+ </ script >
408+ < script >
350409 ( function ( ) {
351410 var toggle = document . querySelector ( '.theme-toggle' ) ;
352411 if ( ! toggle ) return ;
0 commit comments