@@ -1028,6 +1028,113 @@ <h3>Word Scramble</h3><p>Unscramble words before attempts run out!</p><button cl
10281028 </ div >
10291029 </ section >
10301030
1031+ < section class ="faq-section " id ="faqSection " aria-label ="Frequently asked questions ">
1032+ < div class ="container ">
1033+ < div class ="section-header ">
1034+ < p class ="section-kicker "> Need a hand?</ p >
1035+ < h2 class ="section-title "> Frequently Asked Questions</ h2 >
1036+ < p class ="section-subtitle "> Explore common questions about the lab, project launch flow, and how to use the integrated playground.</ p >
1037+ </ div >
1038+ < div class ="faq-grid ">
1039+ < article class ="faq-card ">
1040+ < button class ="faq-trigger " aria-expanded ="false " aria-controls ="faq-panel-1 " id ="faq-button-1 ">
1041+ < span class ="faq-label "> < i class ="fas fa-book-open " aria-hidden ="true "> </ i > What is Python Mini Projects?</ span >
1042+ < span class ="faq-icon "> < i class ="fas fa-chevron-down " aria-hidden ="true "> </ i > </ span >
1043+ </ button >
1044+ < div id ="faq-panel-1 " class ="faq-panel " role ="region " aria-labelledby ="faq-button-1 ">
1045+ < p > Python Mini Projects is a GSSoC-approved open-source project designed to make learning Python fun, practical, and beginner-friendly through interactive mini projects.</ p >
1046+ < p > Perfect for students, beginners, and anyone who wants to build fun projects while learning Python.</ p >
1047+ </ div >
1048+ </ article >
1049+ < article class ="faq-card ">
1050+ < button class ="faq-trigger " aria-expanded ="false " aria-controls ="faq-panel-2 " id ="faq-button-2 ">
1051+ < span class ="faq-label "> < i class ="fas fa-hands-helping " aria-hidden ="true "> </ i > Who can contribute to this project?</ span >
1052+ < span class ="faq-icon "> < i class ="fas fa-chevron-down " aria-hidden ="true "> </ i > </ span >
1053+ </ button >
1054+ < div id ="faq-panel-2 " class ="faq-panel " role ="region " aria-labelledby ="faq-button-2 ">
1055+ < p > Currently, contributions are open only to officially approved GSSoC participants.</ p >
1056+ </ div >
1057+ </ article >
1058+ < article class ="faq-card ">
1059+ < button class ="faq-trigger " aria-expanded ="false " aria-controls ="faq-panel-3 " id ="faq-button-3 ">
1060+ < span class ="faq-label "> < i class ="fas fa-code-branch " aria-hidden ="true "> </ i > How can I contribute?</ span >
1061+ < span class ="faq-icon "> < i class ="fas fa-chevron-down " aria-hidden ="true "> </ i > </ span >
1062+ </ button >
1063+ < div id ="faq-panel-3 " class ="faq-panel " role ="region " aria-labelledby ="faq-button-3 ">
1064+ < p > You can:</ p >
1065+ < ul >
1066+ < li > work on existing issues</ li >
1067+ < li > create a new issue (after checking for duplicates)</ li >
1068+ < li > comment under the issue to get assigned</ li >
1069+ </ ul >
1070+ < p > A project admin will review and assign the issue.</ p >
1071+ </ div >
1072+ </ article >
1073+ < article class ="faq-card ">
1074+ < button class ="faq-trigger " aria-expanded ="false " aria-controls ="faq-panel-4 " id ="faq-button-4 ">
1075+ < span class ="faq-label "> < i class ="fas fa-list-check " aria-hidden ="true "> </ i > What are the project requirements?</ span >
1076+ < span class ="faq-icon "> < i class ="fas fa-chevron-down " aria-hidden ="true "> </ i > </ span >
1077+ </ button >
1078+ < div id ="faq-panel-4 " class ="faq-panel " role ="region " aria-labelledby ="faq-button-4 ">
1079+ < ul >
1080+ < li > Python 3.10+</ li >
1081+ < li > Standard library only (no external dependencies)</ li >
1082+ < li > Zero setup required</ li >
1083+ < li > Cross-platform support (Windows, macOS, Linux)</ li >
1084+ </ ul >
1085+ </ div >
1086+ </ article >
1087+ < article class ="faq-card ">
1088+ < button class ="faq-trigger " aria-expanded ="false " aria-controls ="faq-panel-5 " id ="faq-button-5 ">
1089+ < span class ="faq-label "> < i class ="fas fa-user-graduate " aria-hidden ="true "> </ i > Can I contribute without prior open-source experience?</ span >
1090+ < span class ="faq-icon "> < i class ="fas fa-chevron-down " aria-hidden ="true "> </ i > </ span >
1091+ </ button >
1092+ < div id ="faq-panel-5 " class ="faq-panel " role ="region " aria-labelledby ="faq-button-5 ">
1093+ < p > Yes. This project is beginner-friendly and a great place to start contributing to open source.</ p >
1094+ </ div >
1095+ </ article >
1096+ < article class ="faq-card ">
1097+ < button class ="faq-trigger " aria-expanded ="false " aria-controls ="faq-panel-6 " id ="faq-button-6 ">
1098+ < span class ="faq-label "> < i class ="fas fa-ban " aria-hidden ="true "> </ i > Are external Python libraries allowed?</ span >
1099+ < span class ="faq-icon "> < i class ="fas fa-chevron-down " aria-hidden ="true "> </ i > </ span >
1100+ </ button >
1101+ < div id ="faq-panel-6 " class ="faq-panel " role ="region " aria-labelledby ="faq-button-6 ">
1102+ < p > No. Only Python standard libraries are allowed in this project.</ p >
1103+ </ div >
1104+ </ article >
1105+ < article class ="faq-card ">
1106+ < button class ="faq-trigger " aria-expanded ="false " aria-controls ="faq-panel-7 " id ="faq-button-7 ">
1107+ < span class ="faq-label "> < i class ="fas fa-check-circle " aria-hidden ="true "> </ i > What happens after my PR is submitted?</ span >
1108+ < span class ="faq-icon "> < i class ="fas fa-chevron-down " aria-hidden ="true "> </ i > </ span >
1109+ </ button >
1110+ < div id ="faq-panel-7 " class ="faq-panel " role ="region " aria-labelledby ="faq-button-7 ">
1111+ < p > After your PR is reviewed and merged, your contribution points will be updated on your GSSoC profile within approximately 20–24 hours.</ p >
1112+ </ div >
1113+ </ article >
1114+ < article class ="faq-card ">
1115+ < button class ="faq-trigger " aria-expanded ="false " aria-controls ="faq-panel-8 " id ="faq-button-8 ">
1116+ < span class ="faq-label "> < i class ="fas fa-terminal " aria-hidden ="true "> </ i > How do I run a project locally?</ span >
1117+ < span class ="faq-icon "> < i class ="fas fa-chevron-down " aria-hidden ="true "> </ i > </ span >
1118+ </ button >
1119+ < div id ="faq-panel-8 " class ="faq-panel " role ="region " aria-labelledby ="faq-button-8 ">
1120+ < p > Clone the repository:</ p >
1121+ < pre > < code > git clone https://github.com/YOUR_USERNAME/python-mini-project.git</ code > </ pre >
1122+ < p > Then:</ p >
1123+ < pre > < code > cd web-app
1124+ python -m http.server 5500</ code > </ pre >
1125+ < p > Open the local link in your browser.</ p >
1126+ < p > For live-server do this:</ p >
1127+ < p > If Node.js installed:</ p >
1128+ < pre > < code > npm install -g live-server</ code > </ pre >
1129+ < p > Then:</ p >
1130+ < pre > < code > cd web-app
1131+ live-server</ code > </ pre >
1132+ </ div >
1133+ </ article >
1134+ </ div >
1135+ </ div >
1136+ </ section >
1137+
10311138 < section class ="playground-section " id ="playgroundSection " aria-label ="Python Playground ">
10321139 < div class ="container ">
10331140 < div class ="playground-header ">
@@ -1106,8 +1213,7 @@ <h3>Resources</h3>
11061213 < ul >
11071214 < li > < a href ="https://github.com/steam-bell-92/python-mini-project/blob/main/README.md "> < i class ="fas fa-book "> </ i > Documentation</ a > </ li >
11081215 < li > < a href ="https://github.com/steam-bell-92/python-mini-project/blob/main/CONTRIBUTING.md "> < i class ="fas fa-code-branch "> </ i > Contribute</ a > </ li >
1109- < li > < a href ="https://github.com/steam-bell-92/python-mini-project/issues/new "> < i class ="fas fa-bug "> </ i > Report a Bug</ a > </ li >
1110- < li > < a href ="https://github.com/steam-bell-92/python-mini-project/blob/main/README.md "> < i class ="fas fa-question-circle "> </ i > FAQ</ a > </ li >
1216+ < li > < a href ="https://github.com/steam-bell-92/python-mini-project/issues/new?template=bug_report.md "> < i class ="fas fa-bug "> </ i > Report a Bug</ a > </ li >
11111217 </ ul >
11121218 </ div >
11131219 < div class ="footer-newsletter ">
@@ -1220,6 +1326,50 @@ <h3>Stay Updated</h3>
12201326 searchInput . value = '' ;
12211327 } ) ;
12221328} ) ;
1329+
1330+ ( function ( ) {
1331+ function closeAllFaqItems ( ) {
1332+ document . querySelectorAll ( '.faq-trigger' ) . forEach ( function ( button ) {
1333+ button . setAttribute ( 'aria-expanded' , 'false' ) ;
1334+ button . closest ( '.faq-card' ) ?. classList . remove ( 'open' ) ;
1335+ } ) ;
1336+ }
1337+
1338+ function toggleFaqItem ( button ) {
1339+ var isExpanded = button . getAttribute ( 'aria-expanded' ) === 'true' ;
1340+ closeAllFaqItems ( ) ;
1341+ if ( ! isExpanded ) {
1342+ button . setAttribute ( 'aria-expanded' , 'true' ) ;
1343+ button . closest ( '.faq-card' ) ?. classList . add ( 'open' ) ;
1344+ }
1345+ }
1346+
1347+ document . querySelectorAll ( '.faq-trigger' ) . forEach ( function ( button ) {
1348+ button . addEventListener ( 'click' , function ( ) {
1349+ toggleFaqItem ( button ) ;
1350+ } ) ;
1351+ button . addEventListener ( 'keydown' , function ( event ) {
1352+ if ( event . key === 'Enter' || event . key === ' ' ) {
1353+ event . preventDefault ( ) ;
1354+ toggleFaqItem ( button ) ;
1355+ }
1356+ } ) ;
1357+ } ) ;
1358+
1359+ document . querySelectorAll ( 'a[href="#faqSection"]' ) . forEach ( function ( anchor ) {
1360+ anchor . addEventListener ( 'click' , function ( event ) {
1361+ event . preventDefault ( ) ;
1362+ var target = document . getElementById ( 'faqSection' ) ;
1363+ if ( target ) {
1364+ target . scrollIntoView ( { behavior : 'smooth' , block : 'start' } ) ;
1365+ var firstTrigger = target . querySelector ( '.faq-trigger' ) ;
1366+ if ( firstTrigger ) {
1367+ firstTrigger . focus ( { preventScroll : true } ) ;
1368+ }
1369+ }
1370+ } ) ;
1371+ } ) ;
1372+ } ) ( ) ;
12231373</ script >
12241374
12251375</ body >
0 commit comments