- Quick description: Create an app which finds anagrams from a list uploaded on a database.
- Languages: ReactJs + PHP-Laravel. Database MySql, phpmyadmin
- Requirements: React FRONTEND authentication (three premade users), Anagram finder, Wordbase uploader (i used .txt only lists)
Wish me luck, lets go!
Lower is going to be frontend part of assignment made by Mark Neiman. Backend can be found here https://github.com/mark1neiman/anagram-backend
My app devided by components, like any React app:
- AnagramFinder - jsx/js fetched via axios to the database for fiding a typed word from database tables.
- WordbaseUploader - jsx/js fetched via axios to the database for uploading a .txt list to the database tables.
- Logout - just a small jsx for login out option, nothing special.
- Login - well login is login but uses 😄, React createContext feature. Fetches via axios to the database, finds out does the user exists or not.
- Home - just takes into all components and builds the app.
- authContext - made for checking does the user is allowed to find or upload anagrams. Also controls login functions. In app.js used react router dom to make it work.
- Well, i am not experinced with it but found information/recomendations. I tried to implement some features like Single-responsibility principle. thats why i created Context, i created custom hooks to make code clean and easy to understand, i hope i used these recomendations right.
- Yes, i used all known to me features to make everything maximum clean.
- Before you upload .txt list i kindly ask to replace all estonian characters like äöõü to aoou, otherwise anagram will not be found.
https://ecommerce.webaza.eu/#/login
email: liana@webaza.eu
password: liana123
email: vinc@webaza.eu
password: vinc123
email: musa@webaza.eu
password: musa123
You can register using Insomnia, postman and send post requests to https://ecommerce.webaza.eu/public/api/register. I used password hashing methond, so your password will not be seen to anyone.
{ "name":"Musa Pittman", "email":"musa@webaza.eu", "password":"musa123" }
I am really thankful to take part in the assignment! It was not for me that easy as it may look, i tried do my best and make the CLEAN app. Everything in this task made me think on every character i coded. Thank you for your work also, hope you like it! Have a nice day. 😉