Language learning app that uses the spaced repetition learning technique to help you memorize a foreign language. The app displays 10 words in French, and asks you to recall the corresponding word in English.
This is the back end for Spaced Repetition App
. A live version of the app can be found at [https://spaced-repetition-ozharb.vercel.app/]
Requires bearer token. You may use the front end client to login and create a token using demo account.
https://spaced-repetition-ozharb.vercel.app/login
- user name: Demo
- password: Demo@2021
API supports Get, Post, Delete, and Patch requests.
/language
get all words for user/language/guess
post user guess to first word in list/user
post a new user with credentials/auth
authenticat user's username and password
- Node and Express
- Authentication via JWT
- RESTful Api
- Testing
- Supertest (integration)
- Mocha and Chai (unit)
- Database
- Postgres
- Knex.js - SQL wrapper
Deployed via Heroku
If using user dunder-mifflin
:
mv example.env .env
createdb -U dunder-mifflin spaced-repetition
createdb -U dunder-mifflin spaced-repetition-test
If your dunder-mifflin
user has a password be sure to set it in .env
for all appropriate fields. Or if using a different user, update appropriately.
npm install
npm run migrate
env MIGRATION_DATABASE_NAME=spaced-repetition-test npm run migrate
And npm test
should work at this point
For tests involving time to run properly, configure your Postgres database to run in the UTC timezone.
- Locate the
postgresql.conf
file for your Postgres installation.- E.g. for an OS X, Homebrew install:
/usr/local/var/postgres/postgresql.conf
- E.g. on Windows, maybe:
C:\Program Files\PostgreSQL\11.2\data\postgresql.conf
- E.g on Ubuntu 18.04 probably: '/etc/postgresql/10/main/postgresql.conf'
- E.g. for an OS X, Homebrew install:
- Find the
timezone
line and set it toUTC
:
# - Locale and Formatting -
datestyle = 'iso, mdy'
#intervalstyle = 'postgres'
timezone = 'UTC'
#timezone_abbreviations = 'Default' # Select the set of available time zone
Start the application npm start
Start nodemon for the application npm run dev
Run the tests mode npm test
Run the migrations up npm run migrate
Run the migrations down npm run migrate -- 0