Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rafael-cesario/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.
https://github.com/rafael-cesario/wordlist
apollo graphql jwt mongodb mongoose next-13 redux styled-components typegoose typescript vitest
Last synced: about 5 hours ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/rafael-cesario/wordlist
- Owner: Rafael-Cesario
- License: mit
- Created: 2023-06-04T21:43:31.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-22T15:03:12.000Z (9 months ago)
- Last Synced: 2024-04-21T01:25:18.286Z (7 months ago)
- Topics: apollo, graphql, jwt, mongodb, mongoose, next-13, redux, styled-components, typegoose, typescript, vitest
- Language: TypeScript
- Homepage:
- Size: 2.05 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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.
### [Features](/WordList.txt)
### 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](https://github.com/Rafael-Cesario/WordList/assets/88716893/976eecef-e0f1-4e40-b4ac-3d6a470354b7)
![List](https://github.com/Rafael-Cesario/WordList/assets/88716893/74d8a275-5259-4d3e-988e-dfff4c6ee688)
![Home](https://github.com/Rafael-Cesario/WordList/assets/88716893/818e88e5-a434-4084-8c8f-a4947a0e2f4f)
![Wordlist](https://github.com/Rafael-Cesario/WordList/assets/88716893/775ad128-0411-4f18-b285-a7ff54a55b11)
![Question](https://github.com/Rafael-Cesario/WordList/assets/88716893/c2709f85-e8e0-48b5-b37c-1ca4a5a95ff8)### 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