/WordList

WordList is a full-stack project to memorize words with lists and flash cards. While you are listening, reading, or watching, some words that you don't know yet will appear, use the website to add these words and revise them.

Primary LanguageTypeScriptMIT LicenseMIT

WordList

WordList is a website for learning a new language, more precisely to help you memorize some words.
While you are listening, reading, or watching, some words that you don't know yet will appear, use the website to add these words and revise them.

Stack

Language: Typescript
Framework: Next 13
Styles: Styled-Components
Database: MongoDB, mongoose, typegoose.
Queries: Graphql - Apollo
Global state: Redux
Authentication: JWT
Tests: Cypress, vitest, react-testing-library, supertest-graphql
Linting: Eslint

Preview

Authentication List Home Wordlist Question

How to run the project in dev environment

You will need mongoDB installed.
Clone the repository, and enter the wordList folder
    git clone https://github.com/Rafael-Cesario/WordList
    cd wordList
There are two folders inside wordList, Frontend and Backend
Backend
	cd Backend
	${packageManager} install
Inside backend folder create a .env with the following properties
This will start mongoDB on localhost
SECRET is a string, a SHA256 hash you can use this link to create a hash: https://emn178.github.io/online-tools/sha256.html
	DATABASE="mongodb://127.0.0.1:27017/WordList"
	SECRET="${secret hash for the jwt Token}"
Backend is ready
	${packageManager} run dev
Frontend
Open another terminal instance to run the frontend server.
	cd Frontend
	${packageManager} install
Inside the folder we need to create a .env.local with the following property
	//.env.local
	NEXT_PUBLIC_URI_DATABASE="http://localhost:4000/"
Frontend is ready
	${packageManager} run dev