Code Monkey home page Code Monkey logo

quran.com-frontend-next's Introduction


Logo

The Noble Quran

The official source code repository for Quran.com
Join the Slack Channel »

Visit Quran.com · Report Bug · Request FeatureStorybook

Contributors Forks Issues Stargazers MIT License

This project is the frontend for Quran.com. It is built on top of next.js, a popular framework that takes the trouble and setup of setting up an isomorphic react app. We deploy it on now.sh automatically with automatic generation of builds for PRs.

Unlike the previous Quran.com build, we want this repo to focus on consistency and scale. We will document the process of setting this up on your local dev, making changes, picking up issues and finally getting work to deploy!

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.

Running the app locally

  • Ensure you have the latest nodejs and npm installed. Prefer 10+.
  • Ensure you have yarn installed. Simply npm i -g yarn
  • Clone this repo
  • Run yarn on the repo to install node_modules
  • Run yarn dev to start the app. If you wish to run on a different port, run yarn dev -p 8000
  • Open localhost:3000

The app runs on next.js and will automatically hot reload when you make changes.

Styling

We use styled-components as our styling library. When adding a new library (for example, for tooltips), please ensure it uses styled-components as the styling library. We want to avoid sending large JS files to our users, so having a mix of styling solutions will not be good. styled-components also allows us to code-split and send JS + CSS for what is needed.

DLS (design language system)

One mistake we made previously is treated each component as unique. This made our work not scalable. Secondly, when looking at large companies, they often develop a design style language that can be used across the app without the need to create unique components and ensure better consistency across the product. We are trying to take a similar approach. If something can be used elsewhere, please put it inside the dls/ directory and create stories for it.

Storybook.js

Our components are built within Storybook.js. See files with name .stories.tsx. This helps engineers view their work outside of the product, making it super easy to test different configurations of the component.

We also display all our components here.

Typescript

We chose typescript as the language of choice of it's ease of type-safety. Please create types where you see fit.

Helping out and issues

If you are interested to help out, please look at issues on the Github repo. This is a good place to start.

Filing bugs

Thank you for taking time to file a bug! We'd appreciate your help on fixing it 🙏. Please open an issue.

quran.com-frontend-next's People

Contributors

anasss avatar dependabot[bot] avatar hazem3500 avatar mahmoudfelfel avatar mistapidaus avatar mmahalwy avatar nabeel- avatar soghammed avatar tifa2up avatar

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.