Skip to content
This repository has been archived by the owner on Jun 28, 2021. It is now read-only.

Commit

Permalink
Develop -> Master (#387)
Browse files Browse the repository at this point in the history
* HOTFIX reading mode markers (#303)

* Default api and files (#306)

* Reducing bundle size (#310)

* Reducing bundle size

* rearranged files

* more rearrange and deleted unneeded files

* add default segments key (#313)

* transitioning to al-quran al-kareem (#314)

transitioning to Al-Quran al-Kareem

* Fix lint issues

* Update Readme.md

* Add devDependency Status

* Update Readme for new developers

* Code splitting assets (#321)

* Code splitting

* Split the html files into their own and ajax requested

* Pass tests

* Wrong files

* Add segments

* Add segments

* Autocomplete pointing to v2 suggest

* HOTFIX pretty-error dep (#323)

* HOTFIX Search to the right route (#324)

* No segments for non-segmented reciters (#325)

* Adding sentry (#327)

* CDN images for surahinfo (#328)

* Reduce data dehydration (#329)

* Search Action on homepage (#330)

* Descriptions for surahs (#331)

* Fixed head tags (#332)

* Head tags improved and more organized

* Fixed the head problem

* audioplayer bug fixes, or more bugs (#335)

* audioplayer bug fixes, or more bugs

* removes some unneeded state things in audioplayer redux, also fixes a bug where event listeners would get bound without properly unbinding multiple times, which caused the player to skip ayahs after using next <-> prev more then once on the same ayah

* temporarily disables word focusing capacity

* Add sourcemaps to prod

* Remove zero padding in urls

* (WIP) Issue #248 (#336)

Fixes #248 Out of range bug

* correct waffle url. (#338)

* JS error on surah click (#349)

* Add Heroku generated app.json

* Ramadan Todo list (#343)

* Change

* Eslint added (#345)

* Eslint added

* eslint in travis

* ayah require

* Fixed

* fixed bug that was preventing ayah transition on audioplayer

* fix autocomplete thing

* Extract connect from the surah container (#347)

* Fout fonts (#346)

* Fout fonts

* wip

* wip2

* do not update

* pass tests

* Sourcemap for sentry (#352)

* contribution guideline (#355)

* Heroku pipeline trials (#354)

* push

* push

* push

* push

* push

* Heroku push (#356)

* Heroku push

* public urls

* Add zendesk widget (#358)

* Fix font artifacts

This fixes #365 by merging the 3 fonts from quran/quran.com-images#7,
quran/quran.com-images#8, and quran/quran.com-images#9.

* Update font for page 237 to fix spacing in 12:17

This fixes the spacing issue in 12:17 by updating the font. Fixes #369.

* Feature/341 social share (#367)

* Add zendesk widget (#358)

*  The first commit's message is:

* Simplify audioplayer (#360)

* Audioplayer refactor

* more reshuffling

* move logic outside of tracker

* fixes #359

* eslint

* refactor and works

* Added segments

* Fix navigating from home to surah

* reciter change

* on word click working!

* segments encryption and lazy decryption

* encryption lib

* linter is happy

* unit tests

* env

* Fix sentry bug (#373)

* Fix sentry bug

* no build

* #372 colon separated surah/ayah (#374)

* #372 colon separated surah/ayah

* #372 colon separated surah/ayah

* #372 colon separated surah/ayah

* Re-output fonts with Apple option enabled

This probably doesn't matter for web, but it may matter for apps in the
future, plus wanted to keep in sync with the versions of the fonts used
by quran/quran.com-images.

* Tooltip options for translation and transliteration (#376)

* Reading mode single line (#377)

* - ayah's have link (discuss, maybe not needed) (#379)

- Fix audio player playing text
- Remove unneeded padding on mobile
- Hide Share on mobile devices (native share is built into the browsers)

* Added Mixpanel (#384)

* Remove footer links (#385)

* Remove footer links

* eslint

* Fix json-ld (#386)
  • Loading branch information
mmahalwy authored Jul 10, 2016
1 parent a180652 commit 4395405
Show file tree
Hide file tree
Showing 147 changed files with 3,611 additions and 3,312 deletions.
9 changes: 1 addition & 8 deletions .babelrc
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,7 @@
},
"development": {
"plugins": [
"typecheck",
["react-transform", {
"transforms": [{
"transform": "react-transform-catch-errors",
"imports": ["react", "redbox-react"]
}
]
}]
"typecheck"
]
}
}
Expand Down
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ root = true

[*]
indent_style = space
indent_size = 4
indent_size = 2
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
Expand Down
6 changes: 6 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
NODE_ENV=development
PORT=8000
API_URL=http://quran.com:3000
SEGMENTS_KEY=
SENTRY_KEY_CLIENT=
SENTRY_KEY_SERVER=
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
src/components/SurahInfo/htmls/*
79 changes: 47 additions & 32 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -1,40 +1,55 @@
{
"parser": "babel-eslint",
"extends": "airbnb",
"env": {
"es6": true,
"node": true,
"browser": true,
"jquery": true
},
"ecmaFeatures": {
"arrowFunctions": true,
"binaryLiterals": true,
"blockBindings": true,
"classes": true,
"defaultParams": true,
"destructuring": true,
"forOf": true,
"generators": true,
"modules": true,
"objectLiteralComputedProperties": true,
"objectLiteralDuplicateProperties": true,
"objectLiteralShorthandMethods": true,
"objectLiteralShorthandProperties": true,
"octalLiterals": true,
"regexUFlag": true,
"regexYFlag": true,
"spread": true,
"superInFunctions": true,
"templateStrings": true,
"unicodeCodePointEscapes": true,
"globalReturn": true,
"jsx": false
"node": true,
"mocha": true,
"es6": true
},
"rules": {
"strict": 0,
"indent": [2, 2],
"quotes": [2, "single"],
"no-unused-vars": 0
"react/no-multi-comp": 0,
"import/default": 0,
"import/no-duplicates": 0,
"import/named": 0,
"import/namespace": 0,
"import/no-unresolved": 0,
"import/no-named-as-default": 2,
// Temporarirly disabled due to a possible bug in babel-eslint (todomvc example)
"block-scoped-var": 0,
// Temporarily disabled for test/* until babel/babel-eslint#33 is resolved
"padded-blocks": 0,
"comma-dangle": 0, // not sure why airbnb turned this on. gross!
"indent": [2, 2, {"SwitchCase": 1}],
"no-console": 0,
"no-alert": 0,
"object-curly-spacing": 0,
"no-case-declarations": 0
},
"plugins": [
"react", "import"
],
"settings": {
"import/parser": "babel-eslint",
"import/resolve": {
moduleDirectory: ["node_modules", "src"]
}
},
"parserOptions":{
"ecmaFeatures": {
"experimentalObjectRestSpread": true
}
},
"plugins": ["react"]
"globals": {
"__DEVELOPMENT__": true,
"__CLIENT__": true,
"__SERVER__": true,
"__DISABLE_SSR__": true,
"__DEVTOOLS__": true,
"socket": true,
"webpackIsomorphicTools": true,
ga: true,
Raven: true,
mixpanel: true
}
}
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ selenium-debug.log
tests/functional/output/*
test/functional/screenshots/*
.ssh
webpack-stats.debug.json
webpack-stats.debug.json
77 changes: 77 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Contributing

You want to help? You rock! Now, take a moment to be sure your contributions make sense to everyone else.

## Reporting Issues

Found a problem? Want a new feature?

- See if your issue or idea has [already been reported].


## Submitting Pull Requests

Pull requests are the greatest contributions, so be sure they are focused in scope, and do avoid unrelated commits.

1. To begin, [fork this project], clone your fork, and add our [upstream].
```bash
# Clone your fork of the repository into the current directory
git clone https://github.com/<your-username>/quran.com-frontend
# Navigate to the newly cloned directory
cd quran.com-frontend
#Assign the forked repository to a remote call "origin"
git remote add origin git://github.com/<your-username>/quran.com-frontend.git
# Assign the original repository to a remote called "upstream"
git remote add upstream https://github.com/quran/quran.com-frontend
# Install the tools necessary for development
npm install
```

2. Create a branch for your feature or fix:
```bash
# Move into a new branch for a feature
git checkout -b feature/thing
```
```bash
# Move into a new branch for a fix
git checkout -b fix/something
```

3. Be sure your code follows our practices.
```bash
# Test current code
npm run test
```
Our `npm run test` tests and _watch_. Otherwise use `npm run test:ci:unit` for CI level tests.

We also have nightwatch function tests. You can install nightwatch globally and can run tests like this:
```
nightwatch --test tests/functional/specs/Index_spec.js
```

4. To create a PR you need to push your branch to the origin(forked) remote and then press some buttons on GitHub:
```bash
# Push a feature branch
git push -u origin feature/thing
```
```bash
# Push a fix branch
git push -u origin fix/something
```

This will create the branch on your GitHub project. The ```-u``` flag links this branch with the remote one, so that in the future, you can simply type ```git push origin```.

5. Now [open a pull request] with a clear title and description.

## Sever-side integration
Unless you have the backend API running locally, you will need to update the `API_URL`, in `development.env` file, from `localhost` to `api.quran.com`. Leave the port number same.

To start the app, run `npm run dev` which will run both the server and the client (webpack) to compile upon edits. Go to http://localhost:8001 in your browser, not 8000 (that is just the express server).

If you experience an issue, check the [contributing] guidelines.

[upstream]: https://help.github.com/articles/syncing-a-fork/
[contributing]: https://guides.github.com/activities/contributing-to-open-source/
[already been reported]: https://github.com/quran/quran.com-frontend/issues
[fork this project]: https://github.com/quran/quran.com-frontend/fork
[open a pull request]: https://help.github.com/articles/using-pull-requests/
4 changes: 4 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
FROM node:5.10.0

ENV NODE_ENV production
ENV API_URL http://api.quran.com:3000
ENV SENTRY_KEY_CLIENT https://44c105328ae544ae9928f9eb74b40061@app.getsentry.com/80639
ENV SENTRY_KEY_SERVER https://44c105328ae544ae9928f9eb74b40061:41ca814d33124e04ab450104c3938cb1@app.getsentry.com/80639
ENV PORT 8000

RUN apt-get -y update && apt-get -y install supervisor ssh rsync

Expand Down
52 changes: 25 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,49 @@
[![Stories Ready](https://badge.waffle.io/quran/quran.com-frontend.svg?label=ready&title=Ready)](http://waffle.io/quran/quran.com-frontend)
[![Stories In Progress](https://badge.waffle.io/quran/quran.com-frontend.svg?label=in%20progress&title=In%20Progress)](http://waffle.io/quran/quran.com-frontend)
[![Stories In Review](https://badge.waffle.io/quran/quran.com-frontend.svg?label=in%20review&title=In%20Review)](http://waffle.io/quran/quran.com-frontend)

# Quran.com

## Quran.com
This is the project soon to be the Quran.com facing site. This is built in
Reactjs + Redux + Expressjs + Webpack. It is isomorphic (javascript shared
[Reactjs] + [Redux] + [Expressjs] + [Webpack]. It is isomorphic (javascript shared
between both the server and the client) for SEO reasons.

[![Dependency Status](https://david-dm.org/quran/quran.com-frontend.svg)](https://david-dm.org/quran/quran.com-frontend)
[![Stories Ready](https://badge.waffle.io/quran/quran.com-frontend.svg?label=ready&title=Ready)](http://waffle.io/quran/quran.com-frontend)
[![Stories In Progress](https://badge.waffle.io/quran/quran.com-frontend.svg?label=in%20progress&title=In%20Progress)](http://waffle.io/quran/quran.com-frontend)
[![Stories In Review](https://badge.waffle.io/quran/quran.com-frontend.svg?label=in%20review&title=In%20Review)](http://waffle.io/quran/quran.com-frontend)


[![Dependency Status](https://david-dm.org/quran/quran.com-frontend.svg)](https://david-dm.org/quran/quran.com-frontend) [![devDependency Status](https://david-dm.org/quran/quran.com-frontend/dev-status.svg)](https://david-dm.org/quran/quran.com-frontend#info=devDependencies)
[![Code Climate](https://codeclimate.com/github/quran/quran.com-frontend.png)](https://codeclimate.com/github/quran/quran.com-frontend)

#### Getting started
Simply clone this repo, then run `npm install` to install all the required node_modules.
From there, you are ready to go!
## How to contribute
We trust that you will not copy this idea/project, this is at the end for the sake of Allah and we all have good intentions while working with this project. But We must stress that copying the code/project is unacceptable.

#### Developing
To start the app, run `npm run dev` which will
run both the server and the client (webpack) to compile upon edits. Go to localhost:8001 in your browser, not 8000 (that is just the express server).
Read the [contributing] section before creating an issue.

#### Tests
Run `npm run test:watch` to run the tests locally and watching. Otherwise use `npm run test` for CI level tests.
## Server-Side Integration
Unless you have the backend API running locally, you will need to update the `API_URL`, in `development.env` file, from `localhost` to `api.quran.com`. Leave the port number same.

To start the app, run `npm run dev` which will run both the server and the client (webpack) to compile upon edits. Go to http://localhost:8001 in your browser, not 8000 (that is just the express server).

We also have nightwatch function tests. You can install nightwatch globally and can run tests like this:
```
nightwatch --test tests/functional/specs/Index_spec.js
```

#### Backend
## Backend
Current at: https://github.com/quran/quran-api-rails
DB is private, message me for acceess.

#### How to contribute
Fork this repo, then create a PR for specific fixes, improvements, etc. We trust that
you will not steal this, this is at the end of the day for the sake of Allah and we
all have good intentions while working with this project. But I must stress, stealing
this is unacceptable.

#### Design
## Design
We currently use InvisionApp. Again, contact me if you'd like access to it.

#### Making sure main.js is small
## Making sure main.js is small
Follow: https://www.npmjs.com/package/webpack-bundle-size-analyzer
```
env NODE_ENV=development webpack --json > bundle-stats.json
subl bundle-stats.json #so that you can the output
analyze-bundle-size bundle-stats.json
```

###### [View project issues on waffle.io...](https://badge.waffle.io/quran/quran.com-frontend)
## [View project issues on waffle.io...](https://waffle.io/quran/quran.com-frontend)

[Reactjs]: https://facebook.github.io/react/docs/getting-started.html
[Redux]: http://redux.js.org/
[Expressjs]: http://expressjs.com/en/starter/hello-world.html
[Webpack]: http://webpack.github.io/docs/what-is-webpack.html
[contributing]: CONTRIBUTING.md
16 changes: 16 additions & 0 deletions app.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "quran.com-frontend",
"scripts": {
},
"env": {
"API_URL": "http://api.quran.com:3000",
"USE_LOCAL_ASSETS": "true"
},
"formation": {
},
"addons": [

],
"buildpacks": [
]
}
83 changes: 0 additions & 83 deletions bootstrap-sass.config.js

This file was deleted.

Loading

0 comments on commit 4395405

Please sign in to comment.