Welcome to the Space Travel frontend application! This project is a sleek and interactive web application designed to let users explore various space travel destinations, learn about the crew members, and discover the latest technology used in space exploration.
It features responsive design, smooth animations, and accessibility enhancements, making it a polished and user-friendly application. The project is well-structured with modular components, comprehensive testing, and clear documentation, making it easy to extend and maintain.
Check out the live version of the Space Travel application here.
- Interactive Navigation: Explore different sections (Home, Destination, Crew, and Technology) using a responsive and accessible navigation menu.
- Dynamic Content: Each section dynamically loads content, such as destinations with detailed descriptions and travel information.
- Accessible Components: Designed with accessibility in mind, including ARIA attributes and semantic HTML.
- Responsive Design: Optimized for various screen sizes and devices.
- Smooth Animations: Page transitions and component interactions include subtle animations for a polished user experience.
First, clone the repository to your local machine:
git clone https://github.com/yourusername/space-travel.git
cd space-travelInstall the necessary dependencies:
pnpm installTo run the application locally, use:
pnpm devThis command will start a development server at http://localhost:3000/.
To create an optimized production build, run:
pnpm buildTo start the production server:
pnpm startHere's a brief overview of the project's structure:
space-travel/
├── public/ # Public assets (images, icons, etc.)
├── src/
│ ├── app/ # Main application components and pages
│ │ ├── components/ # Shared UI components and SCSS modules
│ │ ├── context/ # App data context
│ │ ├── design-system/ # Design system preview pages
│ │ ├── styles/ # Global SCSS styles
│ │ ├── utils/ # Utility functions and type definitions
│ │ ├── data.json # Static data for destinations, crew, and technology
│ │ └── ... # Route files and page modules
├── next.config.mjs # Next.js config
├── package.json # Project metadata and pnpm scripts
├── pnpm-lock.yaml # Dependency lockfile
├── tsconfig.json # TypeScript configuration
└── README.md # Project documentation
- NavBar: A responsive navigation menu that adapts to screen sizes and offers an accessible user experience.
- Crew, Destination, Technology Pages: Pages that fetch and display information about space destinations, crew members, and technologies.
- Reusable Components: Dots, Numbers, Tabs, and LargeButton components enhance interactivity across the app.
This project uses Jest and Testing Library to ensure reliability and correctness.
To run tests (includes coverage reports):
pnpm testTo clear the Jest cache:
pnpm test:clearCacheContributions are welcome! If you'd like to contribute, please fork the repository and use a feature branch. Pull requests are warmly welcome.
- Fork the repository.
- Create a new feature branch (
git checkout -b feature-branch-name). - Make your changes.
- Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature-branch-name). - Create a new Pull Request.