The Tesodev Data Management System is a feature-rich React application without any external Css library designed for managing and searching user data. It consists of three main pages: Home, Search Results and Add Record. Each offering distinct functionalities and features. Such as pagination, sliding cards and validators.
-
Home Page
- Add New Record Button: Clicking this button navigates you to the "Add New Record" page, where you can add new user data.
- Search Input: A search input at the center of the page allows you to filter results by name. Show More Button: When more than three results match your search, a "Show More" button appears, allowing you to navigate to the "Search Results" page.
- Footer Card Slider: You can slide through user data cards with arrow buttons in the footer.
- Contact Details: Contact information for Tesodev is provided, including address and phone number.
- Google Map: An embedded Google Map displays Tesodev's location.
-
Search Results Page
- Pagination: User data is displayed with pagination, showing five results per page.
- Dropdown Sort: You can sort results by Name Ascending, Name Descending, Year Ascending, and Year Descending using the dropdown menu.
-
Add New Record Page
- Form: A form allows you to add new user data, including name, surname, country, city, and email.
- Validation: The form includes validation for the following conditions:
- Name and surname input cannot be empty.
- Name and surname must contain at least two words.
- Name and surname cannot contain numbers.
- Name and surname must be at least four characters long.
- Country and city inputs cannot have fewer than two letters.
- Email input is validated for correct email format.
- Error Pop-Up: When validation errors occur, an error pop-up will display, listing the errors. The pop-up includes an option to close it.
- Error List: The pop-up displays a list of errors related to the form fields.
- Close Button: Users can close the error pop-up by clicking the "X" button.
- Add Button: The "Add" button adds a new user data object (for display purposes only).
To use this project, follow these steps:
- Clone the repository to your local machine: git clone https://github.com/dogukankumru/React-Tesodev-Challenge-Project.git
- Navigate to the project directory:
- Install project dependencies: (npm install)
- Start the development server: (npm start)
- Open a web browser and access the application at http://localhost:3000.
-
Home Page
- Click the "Add New Record" button to navigate to the "Add New Record" page.
- Enter a name in the search input field. If more than three results match, a "Show More" button will appear.
- Use the card slider to view user data cards.
- Scroll to see contact details and the embedded Google Map.
-
Search Results Page
- Use the dropdown to sort results.
- Click page numbers for pagination.
- Enter a name in the search input field.
- Click the "Search" button to see updated results.
-
Add New Record Page
- Fill out the form with user data.
- Ensure data meets validation criteria.
- Click the "Add" button to add a new user data object (display purposes only).
![Screenshot 2023-09-11 at 10 29 23](https://private-user-images.githubusercontent.com/95023894/266943653-1f5874a9-bac5-41fd-a66e-a0f0b3905fc5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkwNTQ4OTksIm5iZiI6MTcxOTA1NDU5OSwicGF0aCI6Ii85NTAyMzg5NC8yNjY5NDM2NTMtMWY1ODc0YTktYmFjNS00MWZkLWE2NmUtYTBmMGIzOTA1ZmM1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIyVDExMDk1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUxZWZlMjhhNTExODU0MTU1YWI3MWQ3MzdkNmUyOTcwZmRiYTY1OTJmOWE2YjZhMjFhZGE4ZTJiODIxOWMwNmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.qpVcSkhKMwu6r0QTFaDRrz3ZNvIm_FyRYEpOCVY4MIE)
![Screenshot 2023-09-11 at 10 29 57](https://private-user-images.githubusercontent.com/95023894/266943713-63822e45-7bf5-459b-9b85-355599dc7f3e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkwNTQ4OTksIm5iZiI6MTcxOTA1NDU5OSwicGF0aCI6Ii85NTAyMzg5NC8yNjY5NDM3MTMtNjM4MjJlNDUtN2JmNS00NTliLTliODUtMzU1NTk5ZGM3ZjNlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIyVDExMDk1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTAzZjY3NTM0NDA2YmI1N2UwYjFmNTk4YzEyYjU0M2YwZGEwZjRhY2M1YWQ3MzgwMDZmYmIxZTI0NDI4MzUzZjcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.W4n4w2ERqviahgTYz0MtsfvTEScI0c-bccxkYFwnmqE)
![Screenshot 2023-09-11 at 10 31 02](https://private-user-images.githubusercontent.com/95023894/266943835-93d869cb-6cfd-40ed-915a-f6c699ba22e8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkwNTQ4OTksIm5iZiI6MTcxOTA1NDU5OSwicGF0aCI6Ii85NTAyMzg5NC8yNjY5NDM4MzUtOTNkODY5Y2ItNmNmZC00MGVkLTkxNWEtZjZjNjk5YmEyMmU4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIyVDExMDk1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVjZTAyNjFkNDNhZGE3NTMwMmJjZmIzNjIxZWEyMTgyZjg2YWU4YWNmZWEwYjNjMjBmZGIxZDdiY2JmYWM5NTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.EFHRbO7IuAT4BaGnvvSgLbOY4xZL7t34O5wTrEL-R9I)
![Screenshot 2023-09-11 at 10 31 46](https://private-user-images.githubusercontent.com/95023894/266943927-a094edfc-e2be-4f8e-a027-f432401481b9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkwNTQ4OTksIm5iZiI6MTcxOTA1NDU5OSwicGF0aCI6Ii85NTAyMzg5NC8yNjY5NDM5MjctYTA5NGVkZmMtZTJiZS00ZjhlLWEwMjctZjQzMjQwMTQ4MWI5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIyVDExMDk1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBkYmU2OGFkMDdjMDg0Njc5M2VhMDA3ZDQ4MGYzNWIzNjM2Y2EyMTRmOTc3YTZiNTU0YzljM2Q4OTkxNTZlZWQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.p6j6gROlbMNMps9SbWfFZ2XaB6A7KgCnEo6N1ZKbNe8)
![Screenshot 2023-09-11 at 10 33 50](https://private-user-images.githubusercontent.com/95023894/266944024-fbc32d9c-8de1-4c4c-bab8-e803d0b9d951.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkwNTQ4OTksIm5iZiI6MTcxOTA1NDU5OSwicGF0aCI6Ii85NTAyMzg5NC8yNjY5NDQwMjQtZmJjMzJkOWMtOGRlMS00YzRjLWJhYjgtZTgwM2QwYjlkOTUxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIyVDExMDk1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUzMDNhMmFkMGFmNTBiMjZhYjgxN2U2OTgxNmRlOTY5YjAwNjg3NmIzZDUxY2E5ODIwODFiYTk2N2RkNmUwYTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.oas7QxtZt52Z8baa4w4eW6WpsPVoNxzkB0bs7PLjAzw)