This project involves creating a React web application that displays information about Star Wars ships by consuming data from an API. The app will show a list of ships with their essential details, and when clicked, it will display the detailed information of each ship. The project also implements pagination and protected routes for logged-in users.
The app is designed as part of a technical test for front-end developers in the e-commerce sector in Barcelona.
- Learn to consume data from an external API.
- Display and manage paginated data.
- Enhance user experience with dynamic navigation and detailed views.
- Implement protected routes using authentication.
- Practice Redux for state management.
- Utilize Tailwind CSS for styling and Storybook for component development.
- Vite for development and building the app.
- React and React-DOM for creating the component-based UI.
- React Router DOM for handling routing and navigation.
- Redux Toolkit for state management.
- TailwindCSS for utility-first responsive styling.
- Firebase for user authentication and management.
- Storybook for building and testing components in isolation.
- Jest for unit testing.
- Zod for schema validation.
- Lucide-react and React Icons for integrating icons.
- React Hook Form for handling forms.
- Node.js 16 or newer: JavaScript runtime for executing the project.
- npm or yarn: Package manager to install dependencies.
- A modern web browser: Required to run the application.
- Vite: Preconfigured as part of the project for development and build processes.
- Clone this repository:
git clone https://github.com/dracudev/S7-Star-Wars-App.git
- Navigate to the project directory:
cd S7-Star-Wars-App
- Open the project in your text editor and start coding.
code .
- Create a .env file in the root of the project and replace the values with your personal Firebase API keys:
VITE_FIREBASE_API_KEY=your_firebase_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain
VITE_FIREBASE_PROJECT_ID=your_firebase_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket
VITE_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id
VITE_FIREBASE_APP_ID=your_firebase_app_id
- Install the dependencies and run the server.
npm install
npm run dev
- Run the unitary tests.
npx jest