Giter VIP home page Giter VIP logo

cs446-server's Introduction

cs446-server

Server for CS446 project

Run flask server

export FLASK_APP=app.py
flask run

API

GET /words

  • Returns list of 10 words

Useful scripts

To ingest new words into mongodb:

How to Scrape words

  1. Create an Oxford Dictionary API account at https://developer.oxforddictionaries.com/signup?plan_ids[]=2357356361005
  2. Create a .env file in directory of cs446-server/ containing mongodb and oxford API credentials
    • Replace OXFORD_APP_ID and OXFORD_SECRET env variables with your Application ID and Application Key
  3. python scrape_oxford.py - this randomly samples words.txt and appends words to parsed_words_us.txt and parsed_words_uk.txt
  4. python upload_words.py - this ingests the words from parsed_words_us.txt and parsed_words_uk.txt into mongodb

cs446-server's People

Contributors

dave2000sang avatar azchin avatar

Stargazers

Kuan (Nathan) Jiang avatar  avatar

Watchers

James Cloos avatar  avatar

cs446-server's Issues

Reduce info from 'etymology'

Etymology gives away too much info. An alternative is to parse first substring until a colon ':'.

E.g. Late Middle English (in grammatical use): via Old French from Latin masculinus, from masculus 'male'

Word was "masculine". Desired etymology hint would be "Late Middle English (in grammatical use)"

Add query parameters to /words

Add the following parameters to the /words GET endpoint.

  • locale: either "us" or "uk" (default "us")
  • limit: [1, 1000] (default 10 for now)

Blocks #35 and #41 on client

Add category (and difficulty) support

We'll be hard-coding difficulty and categories on the client's database, so there's no need to handle this dynamically with new /categories or /difficulties endpoints.

Create category and difficulty parameters to /words

Investigate word lists for categories and difficulties

  1. Get word lists for at least 3 categories: standard, and 2 others (e.g. STEM and medical).
  2. Figure out how to handle word difficulty. Potential solutions are getting learner's, intermediate, and collegiate word lists, OR implement custom logic to categorize words by some metrics (e.g. word length, English usage)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.