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.
Landing page with search bar for visa requirements.
# | 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.