This repository contains my five beginner-to-intermediate level React projects to my build core abilities. These projects range from static resume rendering and dynamic movie filtering to interactive task management, city data handling with React Router and LocalStorage, and a full-stack recipe app with Express and MongoDB. Each project demonstrates my key React concepts such as component-based architecture, hooks (useState, useEffect), dynamic rendering, and routing.
The program uses predefined user data such as personal details, education, skills, work experience, and projects. These details are stored as JSX elements within the Resume.js file. No dynamic input is required from the user.
The app is built using React, a JavaScript library for creating user interfaces. The main component, Resume.js, organizes the resume content into sections like header, education, skills, experience, and projects. Styling is applied through an external CSS file, Resume.css, which ensures the layout adheres to the specified requirements, including a background color of rgba(189, 251, 4, 1) and default black text. The App.js file imports and renders the Resume component, serving as the entry point for the application.
Output The program generates a responsive web page showcasing the user's resume with a professional design. The final output can be viewed in a browser using the development server provided by React (npm start). The design aligns with the sample output provided in the assignment.
The application accepts user input through:
- A dropdown menu to select a movie genre.
- Click events on movie items to display an alert with the movie title.
The input data includes an array of movie objects,each containing the title, genre, and release year. The user interacts with the dropdown to filter movies and clicks a movie item to trigger alerts.
- The application initializes with a predefined list of movies.
- It dynamically generates a dropdown menu with unique genres extracted from the movie list.
- When the user selects a genre, the program filters the movie list based on the selection.
- Clicking on a movie triggers an event handler that displays the movie title in an alert box.
The filtering logic and dynamic rendering are achieved using React hooks like 'useState'.
- The application displays a list of movies (title, genre, release year) as styled list items.
- A filtered list of movies is displayed when a genre is selected from the dropdown.
- Clicking a movie shows its title in an alert box.
Input
- The user can input a task description in the input field.
- By clicking the "Add Task" button we can add the task to the list.
- The user can click the "Delete" button next to a task to remove a task from the list.
Process
- The app is using React's
useStatehook to manage the state of the todos and the input value. - When the "Add Task" button is clicked, then the input value is added to the
todosarray. - When the "Delete" button is clicked, the task is removed from the
todosarray. - The
.map()function dynamically renders the list of todos.
Output
- The app displays the list of tasks that are added.
- Each task has a "Delete" button that can remove it from the list.
Input
The application takes the following types of user inputs:
- City information through a form, including:
- City name (text)
- Country name (text)
- Population (number)
- Famous landmark (text)
- City selection from the list for viewing details
Process
The application processes data through these mechanisms:
- React Router handles navigation between different views
- LocalStorage manages data persistence by storing and retrieving city information
- State management using React hooks like (useState, useEffect) helps maintain the application's data flow
- Form validation is used to ensure required fields are filled before submission
- Dynamic rendering of city details based on URL parameters
- Data transformation for display (e.g., population number formatting)
Output
The application produces the following outputs:
- A navigable list of all added cities
- A detailed view of selected city information
- Form confirmation through redirection after successful submission
- Structured display of information including formatted population numbers
- Interactive UI elements (navigation links, forms, city selection)
- Persistent data storage that will survive page refreshes
Input
- User input through form fields to add and update recipes
- Recipe data includes name, ingredients, instructions, cooking time, and difficulty
- Button clicks to trigger CRUD operations
- URL parameters to identify specific recipes for viewing and editing
Process
- React Router manages navigation and URL parameters to different app sections
- React components handle user input and display recipe information
- Express server processes HTTP requests for CRUD operations
- MongoDB Atlas stores and retrieves recipe data
- CRUD operations allow creating, reading, updating, and deleting recipes
- Nested routes display recipe details within the list view
Output
- List of available recipes with basic information
- Detailed view of individual recipes
- Forms for adding and editing recipes
- Confirmation messages for successful operations
- Error messages when operations fail