Roots is a microservice that provides the root of each Arabic word along with their meanings from the Quran. The MVP of this service will have a frontend view and an API service that can be used with other applications.
To run this solution in development, you will need to have docker, node, and next.js installed. This is primarily to run the database, the backend, and the frontend separately.
Run the database: cd db; docker-compose up --build -d
Run the backend: npm run start
--> I recommend utilizing nodemon in development
Run the frontend: npm run dev
Go to the model folder: cd model
Ensure you have the root_meanings.json
file. If not, run node scrape.js
.
Run node scrape_lexicon.js
. This will take a while.
Below is the high-level architecture diagram. The process begins by scraping root words from resourceful websites and designated Excel sheets. We parse and organize that content then store it in our database so that Node can retrieve that data. Node then communicates information from the database to Next.js so that it's interactively displayed on the frontend.