Alisia sat at her desk, her fingers hovering over the keyboard as she stared at the competition prompt on her screen. Jenny had asked her to join this website creation competition, and though it wasn't exactly her focus anymore, Alisia had agreed. She had dived deep into cybersecurity, but back when she was grappling with David's death and trying to distract herself, she had explored many different domains, including web development. The competition required building a responsive website for a travel agency using only HTML, CSS, and JavaScript—no frameworks, no databases, no back-end languages or APIs. Plus she had eigth hours to make the website on campus.
The challenge sounded simple enough on the surface, but Alisia knew better. Without the help of frameworks or libraries like React or Bootstrap, she'd have to craft everything from scratch, and that meant she needed a solid plan.
Before touching the keyboard, Alisia leaned back in her chair and started to think. What would a travel agency need from a website? Her mind worked through the details.
A Travel Agency Website – Essential Components
Main Landing Page: The first thing a user would see. It needed to be visually appealing and provide a sense of adventure, giving potential travelers a reason to explore. Vibrant, high-quality images of exotic locations, a catchy slogan like "Discover Your Next Adventure!", and a clean, professional layout were essential.
Contact Us Page: A crucial part of any business website, allowing potential clients to get in touch. Alisia thought about incorporating a basic contact form with fields for name, email, message, and perhaps a dropdown menu to select their preferred travel destination. Since she couldn't use any back-end languages, she wouldn't be able to handle form submissions in a real way but could simulate the functionality with some JavaScript to show the user an acknowledgment.
Destinations Page: A gallery of top travel destinations, each displayed as a card with a beautiful image, a brief description, and perhaps a button to "Learn More" or "Book Now." JavaScript would be essential here to create an interactive gallery where users could filter destinations based on categories like Beach, Adventure, Cultural, etc.
About Us Page: Every travel agency needs to build trust. The About Us page would feature the agency's history, values, and team. She could add JavaScript animations to make the page more engaging, like fading in images or text as the user scrolls down.
Responsive Design: Ensuring the site worked on mobile, tablet, and desktop devices would be crucial. She'd need to write custom media queries in CSS to handle this, adjusting the layout to ensure it looked good on all screen sizes. No frameworks meant no shortcuts here—every element would need to be hand-coded for responsiveness.
Interactive Map: Alisia thought about integrating an interactive map, something where users could hover over countries or regions and see quick facts or available tours. Without APIs or databases, she'd have to simulate this with simple tooltips and JavaScript for the interaction.
With a rough outline of the site in her mind, Alisia scribbled down a list of the features she could realistically implement given the constraints of the competition. No frameworks or back-end meant she couldn't get too ambitious with functionality like real-time booking or interactive chatbots, but there was still a lot she could do with basic front-end technologies.
She decided to focus on creating a smooth, engaging user experience, using CSS animations, transitions, and JavaScript to enhance the visuals and interactions.
Planning Out the Development
The first step would be building the Main Page. This would need a strong visual impact right from the start—images of stunning travel locations and a hero banner. She also decided to add a carousel that would automatically scroll through different images of destinations, adding a touch of dynamism to the otherwise static page.
She'd also include clear call-to-action buttons like "Explore Destinations" and "Contact Us" right on the landing page. Using CSS animations, these buttons could change color or expand slightly when hovered over, giving them a modern, polished feel.
Next, the Destinations Page would be a gallery of images, each representing a different vacation spot. Each image could be clicked to reveal more details, perhaps with a pop-up box or a slide-down section to keep the user from navigating away from the page. JavaScript would handle these interactions, making the gallery feel interactive and intuitive.
The Contact Us Page would include a simple form that wouldn't actually submit data, given the limitations, but would show a confirmation message once the form was filled out. She'd use JavaScript to validate the form fields and ensure users couldn't submit without filling in their name and email.
For the About Us Page, she'd add some subtle parallax scrolling effects using CSS, where the background images moved at a slower pace than the foreground content as users scrolled. This would make the page feel more dynamic and engaging without requiring any complex technologies.
Finally, the Responsive Design would be a challenge in itself. Alisia sketched out how the site would look on different screen sizes—shrinking the navigation bar into a hamburger menu on mobile, stacking the images vertically instead of in grids, and making the fonts and buttons larger for easier tapping on smaller screens.
The Build Process
Once her plan was in place, Alisia set to work. She began by writing the HTML structure, defining sections for the navigation bar, hero banner, main content, and footer. Next, she added the placeholders for each page, keeping the layout simple but functional.
Her CSS file came next, and this was where the real fun began. She spent hours fine-tuning the appearance of the pages, using flexbox and grid layouts to position elements exactly where she wanted them. It was time-consuming without the help of frameworks, but it was also satisfying. She loved seeing the design come together piece by piece.
For the animations, Alisia wrote custom keyframes in CSS, adding smooth transitions to the buttons and fading in images as the user scrolled. It was important to her that the site felt seamless and modern, even with the limited tools at her disposal.
JavaScript was the last piece of the puzzle. She used it to handle the image carousel, making the hero banner rotate between different travel locations automatically. She also wrote scripts for the gallery, allowing users to filter the destinations by category with the click of a button.
By the time she finished, the site was functional, sleek, and responsive. It wasn't the most complex website she'd ever built, but given the constraints, she was proud of what she had accomplished.
Presentation Day
On the day of the competition, Alisia was nervous but excited. She had spent hours refining the website, checking every detail, testing it on different devices. As she presented it to the judges, she walked them through the design choices she had made, explaining the importance of a smooth user experience and how she had used JavaScript to enhance the interactivity of the site without relying on any frameworks.
The judges seemed impressed by the clean design and the responsive layout, especially given the limitations. They asked a few questions about how she had implemented certain features, and she confidently explained her code, walking them through the process.
As the competition wrapped up and the winners were announced, Alisia felt a sense of accomplishment. She had ranked second. Even though this wasn't directly related to cybersecurity, she had pushed herself to create something from scratch, just like she had when she first started programming years ago. It reminded her why she had fallen in love with computers in the first place—because of the endless possibilities they offered.
She didn't win first place, but that didn't matter. What mattered was that she had proven to herself that she could still do this, still create, still be more than just her grief.
As she walked home, her thoughts wandered to her next steps. Cybersecurity was her goal, but competitions like this reminded her that diversifying her skills could only make her stronger. And as she looked toward the future, she felt more determined than ever to make a difference.