/Gibraltr

A website to check visa requirements for every country and every nationality. Inspired by Sherpa° 🛂

Primary LanguageJavaScript

Gibraltr, your guide to travel visas

About

Gibraltr is a website that allows you to check visa requirements for every nationality no matter the destination. Access the latest data from the Passport Index to inform you on accurate and reliable information for your next trip. It's always best to know before you go, and that's why Gibraltr is here to provide awareness to all international travelers.

Preview

Landing page with search bar for visa requirements.

Documentation

# Folder File Description Inputs Outputs Functions/Methods Misc. Notes
1 components evisa.jsx Creates an information card component for destination pages. Appears on the page when the user requires an electronic visa for their destination. Home.module.css ElectronicVisa N/A
2 components footer.jsx Creates a footer component with links to other pages of the website. FooterStyle.module.css Footer N/A
3 components homepageinfo.jsx Creates a component to abstract the written out information of the home page. Contains headers, paragraphs, and infographics that appear below the search bar. Home.module.css HomePageInfo N/A
4 components iraqikurdistan.jsx Creates an information card component explaining the VOA policy of the Kurdish Regional Government (KRG). Only appears on the Iraq destination page when the visa requirement is VOA. Home.module.css IraqiKurdistanRegion N/A
5 components k-eta.jsx Creates an information card component explaining South Korea's Korean Electronic Travel Authorization (K-ETA). Only appears on the South Korea destination page when the visa requirement is e-visa. Home.module.css KETA N/A
6 components navbar.jsx Creates the navigation bar component. Contains links to the home page (visa search page), About Us page, and FAQ page. NavBarStyle.module.css NavBar N/A
7 components schengen.jsx Creates an information card component explaining the Schengen Zone visa policy. Only appears on destination pages for countries in the Schengen Zone. Home.module.css Schengen N/A
8 components searchbar.jsx Creates the search bar component for visa requirements. filteredCountries, isoCodesList, HeadlessUI Combobox SearchBar handleFormSubmit, Features an autocomplete filter. Features two HeadlessUI Combobox components. Sends query data via React Router Object.
9 components travelban.jsx Creates an information card component notifying a travel restriction or travel ban. Only appears on a select few destination pages between nationalities that are restricted on entering a destination. Home.module.css TravelBan N/A
10 components visa.jsx Creates an information card component for destination pages. Appears when a passport holder needs an embassy visa for their destination.
11 components visafree.jsx Creates an information card component for destination pages. Appears when a passport holder has visa free access to a destination.
12 components visaonarrival.jsx Creates an information card component for destination pages. Appears when a passport holder has access to a visa on arrival (VOA) to a destination.
13 pages/api visa.js Backend component that handles two queries sent from searchbar.jsx via Router object, searchPassport and searchDestination. Calls getVisaRequirement(), searches the visarequirements map for the queries. Sends requirement data at end of request. getVisaRequirements handler handler
14 pages/destinations [destination].jsx Dynamic route for pages displaying destination visa requirements. displayVisaMessage, displayTravelBan, displayVisaInfo, displaySchengenInfo, displayKETA, displayIraqiKurdistan, isoCodeList, getVisaRequirements, DestinationStyle.module.css Destination getServerSideProps, Destination
15 pages 404.jsx Custom 404 error page. navbar, footer PageNotFound PageNotFound
16 pages about.jsx About Us page navbar, footer, Home.module.css, AboutUsStyle.module.css AboutUs AboutUs
17 pages faq.jsx Frequently Asked Questions page
18 pages index.jsx Home Page, features the search bar for visa requirements and general information about the site. navbar, searchbar, homepageinfo, footer, Home.module.css
19 utils countrydata.js Constant data from country-list npm package. Filters non-countries. Initializes key-value Objects, and arrays used in searchbar.jsx and elsewhere in the program. getNames, getCodeList, getNameList, overwrite (from country-list) filteredISOKeys, isoCodesList, countries, filteredCountryKeys, filteredCountries, schengenCountries
20 utils visacardinfomanager.jsx Handles the conditions for the conditional rendering of visa information card components on the destination page. ElectronicVisa, IraqiKurdistanRegion, KETA, Schengen, TravelBan, VisaFree, VisaOnArrival, Visa, isoCodeList, schengenCountries, DestinationStyle.module.css
21 utils visadata.js Parses the raw github link to passport-index-dataset .csv file that we are currently using. Extracts the information, before creating a map of key-values pairs between a pair of the passport and destination ISO2 codes and the visa requirement of the destination for travelers with that passport. getVisaRequirements getVisaRequirements
Written Documentation

Coming soon.