Giter Site home page Giter Site logo

lunelson / dev.to Goto Github PK

View Code? Open in Web Editor NEW

This project forked from forem/forem

0.0 2.0 0.0 38.07 MB

Where programmers share ideas and help each other grow

Home Page: https://dev.to

License: GNU Affero General Public License v3.0

JavaScript 18.10% Dockerfile 0.21% Ruby 49.79% Makefile 0.01% Shell 0.47% HTML 21.25% CSS 10.18%

dev.to's Introduction


DEV

DEV Community ๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿ’ป

The Human Layer of the Stack

ruby version rails version Travis Status for thepracticaldev/dev.to Code Climate maintainability Code Climate test coverage Skylight badge CodeTriage badge Dependabot Badge

Welcome to the dev.to codebase. We are so excited to have you. With your help, we can build out DEV to be more stable and better serve our community.

What is dev.to?

dev.to (or just DEV) is a platform where software developers write articles, take part in discussions, and build their professional profiles. We value supportive and constructive dialogue in the pursuit of great code and career growth for all members. The ecosystem spans from beginner to advanced developers, and all are welcome to find their place within our community. โค๏ธ

Table of Contents

Contributing

We encourage you to contribute to dev.to! Please check out the Contributing to dev.to guide for guidelines about how to proceed.

Codebase

The stack

We run on a Rails backend with mostly vanilla JavaScript on the front end, and some Preact sprinkled in. One of our goals is to move to mostly Preact for our front end.

Additional technologies and services are listed on our docs.

Getting Started

This section provides a high-level requirement & quick start guide. For detailed installations, such as getting started with GitPod, Docker, or specific operating systems, please check out our docs.

Prerequisites

Standard Installation

  1. Make sure all the prerequisites are installed.

  2. Fork dev.to repository, ie. https://github.com/thepracticaldev/dev.to/fork

  3. Clone your forked repository, ie. git clone https://github.com/<your-username>/dev.to.git

  4. Set up your environment variables/secrets

    • Take a look at Envfile. This file lists all the ENV variables we use and provides a fake default for any missing keys. You'll need to get your own free Algolia credentials to get your development environment running.
    • This guide will show you how to get free API keys for additional services that may be required to run certain parts of the app.
    • For any key that you wish to enter/replace:
      1. Create config/application.yml by copying from the provided template (ie. with bash: cp config/sample_application.yml config/application.yml). This is a personal file that is ignored in git.
      2. Obtain the development variable and apply the key you wish to enter/replace. ie:
      GITHUB_KEY: "SOME_REAL_SECURE_KEY_HERE"
      GITHUB_SECRET: "ANOTHER_REAL_SECURE_KEY_HERE"
      
    • If you are missing ENV variables on bootup, envied gem will alert you with messages similar to 'error_on_missing_variables!': The following environment variables should be set: A_MISSING_KEY..
    • You do not need "real" keys for basic development. Some features require certain keys, so you may be able to add them as you go.
  5. Run bin/setup

  6. That's it! Run bin/startup to start the application and head to http://localhost:3000/

View Full Installation Documentation

Starting the application

We're mostly a Rails app, with a bit of Webpack sprinkled in. For most cases, simply running bin/rails server will do. If you're working with Webpack though, you'll need to run the following:

  • Run bin/startup to start the server, Webpack, and our job runner delayed_job. bin/startup runs foreman start -f Procfile.dev under the hood.
  • alias start="bin/startup" makes this even faster. ๐Ÿ˜Š
  • If you're using pry for debugging in Rails, note that using foreman and pry together works, but it's not as clean as bin/rails server.

Here are some singleton commands you may need, usually in a separate instance/tab of your shell.

  • Running the job server (if using bin/rails server) -- this is mostly for notifications and emails: bin/rails jobs:work
  • Clearing jobs (in case you don't want to wait for the backlog of jobs): bin/rails jobs:clear

Current gotchas: potential environment issues with external services need to be worked out.

Suggested Workflow

We use Spring and it is already included in the project.

  1. Use the provided bin stubs to automatically start Spring, i.e. bin/rails server, bin/rspec spec/models/, bin/rails db:migrate.
  2. If Spring isn't picking up on new changes, use spring stop. For example, Spring should always be restarted if there's a change in environment key.
  3. Check Spring's status whenever with spring status.

Caveat: bin/rspec is not equipped with Spring because it affects Simplecov's result. Instead use bin/spring rspec.

Additional docs

Check out our dedicated docs page for more technical documentation.

Core team

Vulnerability disclosure

We welcome security research on DEV under the terms of our vulnerability disclosure policy.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Please see the LICENSE file in our repository for the full text.

Like many open source projects, we require that contributors provide us with a Contributor License Agreement (CLA). By submitting code to the DEV project, you are granting us a right to use that code under the terms of the CLA.

Our version of the CLA was adapted from the Microsoft Contributor License Agreement, which they generously made available to the public domain under Creative Commons CC0 1.0 Universal.

Any questions, please refer to our license FAQ doc or email [email protected]


Sloan, the sloth mascot
Happy Coding โค๏ธ

dev.to's People

Contributors

abraham avatar achasveachas avatar arku avatar arnellebalane avatar aspittel avatar benhalpern avatar bennypowers avatar bolariin avatar briwa avatar citizen428 avatar cyrillefr avatar dependabot-preview[bot] avatar dependabot[bot] avatar edisonywh avatar glennmen avatar jessleenyc avatar kdraypole avatar koheisg avatar lianafelt avatar lightalloy avatar link2twenty avatar m0nica avatar maestromac avatar mariocsee avatar nathansebhastian avatar nickytonline avatar pkfrank avatar rhymes avatar sunchayn avatar zhao-andy avatar

Watchers

 avatar  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.