SlideShare uma empresa Scribd logo
1 de 3
Baixar para ler offline
This was my fourth project for WDI London
This app was an individual project, built by me over six days and was the fourth of four projects during our
time on the Web Development Immersive course at General Assembly, London. The requirements of this
project were to build an authenticated RESTful application using either a MEAN stack a Rails stack or an
Angular front-end with a Rails API. I took this opportunity to have a closer look at Rails and built an Angular
front with Rails API.
LexMachine is an online application designed to help the user expand their vocabulary. For the past year
or so, if I have found a word which I find interesting and I am unsure of the meaning, I will look up the
definition and email it to myself. I now have a list of interesting and slightly unusual words mostly gathered
WDI-Project-4
Introduction
The App
from my favourite books and articles. But, I thought, there must be an easier way... This is why I designed
the Lex Machine It is an authenticated application which simply allows users to store a list of words and
their meanings.
When registered and logged in the user will be invited to add words to their words index. For each letter
typed into the text input on the words index page a dictionary API is called meaning that the user can select
words from the auto complete options. This also means that words which have homonyms and/or are used
in different parts of speech can be filtered out at this stage. Once a word is selected and submitted the
definition, example sentences and other etymological information obtained from the dictionary API and that
word's page is populated with the relevant information. The user is also able to add their own notes on each
individual word such as their own example sentences or the context in which they first heard it. The idea is
that a user is able to quickly look up and store information on any word they wish and compile their own
personal dictionary.
LexMachine uses an Angular/Express application on the front-end with a Rails API on the back-end. It was
made using Bootstrap CSS framework, SASS, and ES6. User authentication was achieved using JWT and
Bcrypt. I made use of Bower to manage front end packages, NPM to manage back end packages, Babel to
minify and transpile SCSS and ES6 and Gulp as our task runner.
As this was the first time I had built a Rails API/SQL back-end (my previous experience was with MongoDB)
I found this in itself challenging. Stepping outside of my 'MEAN stack comfort zone' also meant that linking
up the front and back-ends was challenging. Having said that I can certainly see the benefits of using the
Rails generator and scaffold features over the MongoDB approach. Another problem I encountered was
with the dictionary API. Although it returned lots of useful data in JSON, it was structured in a rather strange
way and extracting what I proved difficult.
These steps are required in order to run the application:
1. Ruby, Rails, Gulp and Node must be installed
2. The front and the back end of the application are in two different Git repositories named WDI-Project-
4-frontend and WDI-Project-4-backend.
3. Install all the relevant NPM and Bower packages by running the commands npm i and bower i
in the root directory WDI-Project-4-frontend.
4. Install the relevant Gems by running the command bundle when in the root directory WDI-Project-
How to use the site
How it was built
Challenges during the build
Getting started
4-backend.
5. Populate the database by running the following command in the root directory WDI-Project-4-backend:
rails db:drop db:create db:migrate db:seed
6. While in the root directory WDI-Project-4-backend run rails s to start up the rails server.
7. In a separate tab in the terminal, in the root directory WDI-Project-4-frontend run the command
gulp .
8. Go to http://localhost:3000 in your browser to view the site.
9. NOTE if the website does not appear to be working correctly please try restarting Gulp in the front-end
directory.
The font used throughout the site was taken from Google Fonts
The background picture was taken from Unsplash
The dictionary API used was Pearson Dictionaries API the documentation for which can be found here
GA instructors Alex Chin and Rane Gowan
Credits

Mais conteúdo relacionado

Mais procurados

AtlasCamp2014: Introducing the Confluence REST API
AtlasCamp2014: Introducing the Confluence REST APIAtlasCamp2014: Introducing the Confluence REST API
AtlasCamp2014: Introducing the Confluence REST APIAtlassian
 
Summon and LibGuides in Drupal
Summon and LibGuides in DrupalSummon and LibGuides in Drupal
Summon and LibGuides in DrupalKen Varnum
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Railsanides
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NETPeter Gfader
 
Publishing API documentation -- Workshop
Publishing API documentation -- WorkshopPublishing API documentation -- Workshop
Publishing API documentation -- WorkshopTom Johnson
 
Introduction to the Web API
Introduction to the Web APIIntroduction to the Web API
Introduction to the Web APIBrad Genereaux
 
1st Chinaonrails Open Course
1st Chinaonrails Open Course1st Chinaonrails Open Course
1st Chinaonrails Open CourseJesse Cai
 
Design API using RAML - basics
Design API using RAML - basicsDesign API using RAML - basics
Design API using RAML - basicskunal vishe
 
Publishing API documentation -- Presentation
Publishing API documentation -- PresentationPublishing API documentation -- Presentation
Publishing API documentation -- PresentationTom Johnson
 
Building a blog with an Onion Architecture
Building a blog with an Onion ArchitectureBuilding a blog with an Onion Architecture
Building a blog with an Onion ArchitectureBarry O Sullivan
 
Modern Web App Architectures
Modern Web App ArchitecturesModern Web App Architectures
Modern Web App ArchitecturesRaphael Stary
 
WordCamp Wilmington 2017 WP-API Why?
WordCamp Wilmington 2017   WP-API Why?WordCamp Wilmington 2017   WP-API Why?
WordCamp Wilmington 2017 WP-API Why?Evan Mullins
 
Cakefest higher education
Cakefest higher educationCakefest higher education
Cakefest higher educationtherealphpdiddy
 
Chapter 1 (asp.net over view)
Chapter 1 (asp.net over view)Chapter 1 (asp.net over view)
Chapter 1 (asp.net over view)let's go to study
 
WebApp / SPA @ AllFacebook Developer Conference
WebApp / SPA @ AllFacebook Developer ConferenceWebApp / SPA @ AllFacebook Developer Conference
WebApp / SPA @ AllFacebook Developer ConferenceAllFacebook.de
 

Mais procurados (20)

AtlasCamp2014: Introducing the Confluence REST API
AtlasCamp2014: Introducing the Confluence REST APIAtlasCamp2014: Introducing the Confluence REST API
AtlasCamp2014: Introducing the Confluence REST API
 
Summon and LibGuides in Drupal
Summon and LibGuides in DrupalSummon and LibGuides in Drupal
Summon and LibGuides in Drupal
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
 
Publishing API documentation -- Workshop
Publishing API documentation -- WorkshopPublishing API documentation -- Workshop
Publishing API documentation -- Workshop
 
What is an API?
What is an API?What is an API?
What is an API?
 
Introduction to the Web API
Introduction to the Web APIIntroduction to the Web API
Introduction to the Web API
 
1st Chinaonrails Open Course
1st Chinaonrails Open Course1st Chinaonrails Open Course
1st Chinaonrails Open Course
 
Design API using RAML - basics
Design API using RAML - basicsDesign API using RAML - basics
Design API using RAML - basics
 
Publishing API documentation -- Presentation
Publishing API documentation -- PresentationPublishing API documentation -- Presentation
Publishing API documentation -- Presentation
 
Learn ASP
Learn ASPLearn ASP
Learn ASP
 
Building a blog with an Onion Architecture
Building a blog with an Onion ArchitectureBuilding a blog with an Onion Architecture
Building a blog with an Onion Architecture
 
Rest API
Rest APIRest API
Rest API
 
WebApp #3 : API
WebApp #3 : APIWebApp #3 : API
WebApp #3 : API
 
Modern Web App Architectures
Modern Web App ArchitecturesModern Web App Architectures
Modern Web App Architectures
 
WordCamp Wilmington 2017 WP-API Why?
WordCamp Wilmington 2017   WP-API Why?WordCamp Wilmington 2017   WP-API Why?
WordCamp Wilmington 2017 WP-API Why?
 
Cakefest higher education
Cakefest higher educationCakefest higher education
Cakefest higher education
 
Chapter 1 (asp.net over view)
Chapter 1 (asp.net over view)Chapter 1 (asp.net over view)
Chapter 1 (asp.net over view)
 
ASP.NET Lecture 1
ASP.NET Lecture 1ASP.NET Lecture 1
ASP.NET Lecture 1
 
WebApp / SPA @ AllFacebook Developer Conference
WebApp / SPA @ AllFacebook Developer ConferenceWebApp / SPA @ AllFacebook Developer Conference
WebApp / SPA @ AllFacebook Developer Conference
 

Semelhante a WDI-Poject-4-README

Top 6 iOS Libraries Every iOS Developer Should Use In The Project.pptx
Top 6 iOS Libraries Every iOS Developer Should Use In The Project.pptxTop 6 iOS Libraries Every iOS Developer Should Use In The Project.pptx
Top 6 iOS Libraries Every iOS Developer Should Use In The Project.pptxOliviaManek
 
WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!
WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!
WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!Evan Mullins
 
Felix Sasaki - Value beyond content creation - Introducing ITS 2.0; soapconf ...
Felix Sasaki - Value beyond content creation - Introducing ITS 2.0; soapconf ...Felix Sasaki - Value beyond content creation - Introducing ITS 2.0; soapconf ...
Felix Sasaki - Value beyond content creation - Introducing ITS 2.0; soapconf ...soapconf
 
iOS Swift application architecture
iOS Swift application architectureiOS Swift application architecture
iOS Swift application architectureRomain Rochegude
 
2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar SlidesDuraSpace
 
covo.js : A JavaScript Library to Utilize Subject Headings and Thesauri on th...
covo.js : A JavaScript Library to Utilize Subject Headings and Thesauri on th...covo.js : A JavaScript Library to Utilize Subject Headings and Thesauri on th...
covo.js : A JavaScript Library to Utilize Subject Headings and Thesauri on th...Shun Nagaya
 
Guide to Using React Router V6 in React Apps.pdf
Guide to Using React Router V6 in React Apps.pdfGuide to Using React Router V6 in React Apps.pdf
Guide to Using React Router V6 in React Apps.pdfAdarshMathuri
 
The top real-life React app examples
The top real-life React app examplesThe top real-life React app examples
The top real-life React app examplesCMARIX TechnoLabs
 
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on RailsAlessandro DS
 
Drupal and Apache Stanbol
Drupal and Apache StanbolDrupal and Apache Stanbol
Drupal and Apache StanbolAlkuvoima
 
Programming the Semantic Web
Programming the Semantic WebProgramming the Semantic Web
Programming the Semantic WebLuigi De Russis
 
Web Apps atop a Content Repository
Web Apps atop a Content RepositoryWeb Apps atop a Content Repository
Web Apps atop a Content RepositoryGabriel Walt
 
Things you must know on ruby on rails single page application
Things you must know on ruby on rails single page applicationThings you must know on ruby on rails single page application
Things you must know on ruby on rails single page applicationAndolasoft Inc
 
StackEngine Problem Space Demo
StackEngine Problem Space DemoStackEngine Problem Space Demo
StackEngine Problem Space DemoBoyd Hemphill
 

Semelhante a WDI-Poject-4-README (20)

Top 6 iOS Libraries Every iOS Developer Should Use In The Project.pptx
Top 6 iOS Libraries Every iOS Developer Should Use In The Project.pptxTop 6 iOS Libraries Every iOS Developer Should Use In The Project.pptx
Top 6 iOS Libraries Every iOS Developer Should Use In The Project.pptx
 
WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!
WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!
WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!
 
Felix Sasaki - Value beyond content creation - Introducing ITS 2.0; soapconf ...
Felix Sasaki - Value beyond content creation - Introducing ITS 2.0; soapconf ...Felix Sasaki - Value beyond content creation - Introducing ITS 2.0; soapconf ...
Felix Sasaki - Value beyond content creation - Introducing ITS 2.0; soapconf ...
 
iOS Swift application architecture
iOS Swift application architectureiOS Swift application architecture
iOS Swift application architecture
 
2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides
 
Exploring My Career: an Exclusive Interview EN
Exploring My Career: an Exclusive Interview ENExploring My Career: an Exclusive Interview EN
Exploring My Career: an Exclusive Interview EN
 
Cache me if you can
Cache me if you canCache me if you can
Cache me if you can
 
covo.js : A JavaScript Library to Utilize Subject Headings and Thesauri on th...
covo.js : A JavaScript Library to Utilize Subject Headings and Thesauri on th...covo.js : A JavaScript Library to Utilize Subject Headings and Thesauri on th...
covo.js : A JavaScript Library to Utilize Subject Headings and Thesauri on th...
 
Portfolio
PortfolioPortfolio
Portfolio
 
Guide to Using React Router V6 in React Apps.pdf
Guide to Using React Router V6 in React Apps.pdfGuide to Using React Router V6 in React Apps.pdf
Guide to Using React Router V6 in React Apps.pdf
 
The top real-life React app examples
The top real-life React app examplesThe top real-life React app examples
The top real-life React app examples
 
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on Rails
 
Drupal and Apache Stanbol
Drupal and Apache StanbolDrupal and Apache Stanbol
Drupal and Apache Stanbol
 
Ruby Rails Web Development.pdf
Ruby Rails Web Development.pdfRuby Rails Web Development.pdf
Ruby Rails Web Development.pdf
 
Programming the Semantic Web
Programming the Semantic WebProgramming the Semantic Web
Programming the Semantic Web
 
Web Apps atop a Content Repository
Web Apps atop a Content RepositoryWeb Apps atop a Content Repository
Web Apps atop a Content Repository
 
React js basics
React js basicsReact js basics
React js basics
 
Things you must know on ruby on rails single page application
Things you must know on ruby on rails single page applicationThings you must know on ruby on rails single page application
Things you must know on ruby on rails single page application
 
The mean stack
The mean stackThe mean stack
The mean stack
 
StackEngine Problem Space Demo
StackEngine Problem Space DemoStackEngine Problem Space Demo
StackEngine Problem Space Demo
 

WDI-Poject-4-README

  • 1. This was my fourth project for WDI London This app was an individual project, built by me over six days and was the fourth of four projects during our time on the Web Development Immersive course at General Assembly, London. The requirements of this project were to build an authenticated RESTful application using either a MEAN stack a Rails stack or an Angular front-end with a Rails API. I took this opportunity to have a closer look at Rails and built an Angular front with Rails API. LexMachine is an online application designed to help the user expand their vocabulary. For the past year or so, if I have found a word which I find interesting and I am unsure of the meaning, I will look up the definition and email it to myself. I now have a list of interesting and slightly unusual words mostly gathered WDI-Project-4 Introduction The App
  • 2. from my favourite books and articles. But, I thought, there must be an easier way... This is why I designed the Lex Machine It is an authenticated application which simply allows users to store a list of words and their meanings. When registered and logged in the user will be invited to add words to their words index. For each letter typed into the text input on the words index page a dictionary API is called meaning that the user can select words from the auto complete options. This also means that words which have homonyms and/or are used in different parts of speech can be filtered out at this stage. Once a word is selected and submitted the definition, example sentences and other etymological information obtained from the dictionary API and that word's page is populated with the relevant information. The user is also able to add their own notes on each individual word such as their own example sentences or the context in which they first heard it. The idea is that a user is able to quickly look up and store information on any word they wish and compile their own personal dictionary. LexMachine uses an Angular/Express application on the front-end with a Rails API on the back-end. It was made using Bootstrap CSS framework, SASS, and ES6. User authentication was achieved using JWT and Bcrypt. I made use of Bower to manage front end packages, NPM to manage back end packages, Babel to minify and transpile SCSS and ES6 and Gulp as our task runner. As this was the first time I had built a Rails API/SQL back-end (my previous experience was with MongoDB) I found this in itself challenging. Stepping outside of my 'MEAN stack comfort zone' also meant that linking up the front and back-ends was challenging. Having said that I can certainly see the benefits of using the Rails generator and scaffold features over the MongoDB approach. Another problem I encountered was with the dictionary API. Although it returned lots of useful data in JSON, it was structured in a rather strange way and extracting what I proved difficult. These steps are required in order to run the application: 1. Ruby, Rails, Gulp and Node must be installed 2. The front and the back end of the application are in two different Git repositories named WDI-Project- 4-frontend and WDI-Project-4-backend. 3. Install all the relevant NPM and Bower packages by running the commands npm i and bower i in the root directory WDI-Project-4-frontend. 4. Install the relevant Gems by running the command bundle when in the root directory WDI-Project- How to use the site How it was built Challenges during the build Getting started
  • 3. 4-backend. 5. Populate the database by running the following command in the root directory WDI-Project-4-backend: rails db:drop db:create db:migrate db:seed 6. While in the root directory WDI-Project-4-backend run rails s to start up the rails server. 7. In a separate tab in the terminal, in the root directory WDI-Project-4-frontend run the command gulp . 8. Go to http://localhost:3000 in your browser to view the site. 9. NOTE if the website does not appear to be working correctly please try restarting Gulp in the front-end directory. The font used throughout the site was taken from Google Fonts The background picture was taken from Unsplash The dictionary API used was Pearson Dictionaries API the documentation for which can be found here GA instructors Alex Chin and Rane Gowan Credits