Git Product home page Git Product logo

docdog-engine's Introduction

Docdog GitHub release Build Status Coverage Status Licence Powered by Wunsh.ru

Web application for co-translation of technical texts – documentations, articles, etc.

Start your own Docdog locally

Now you can start your development activity very easy:

docker-compose up

But make simple preparing before:

  1. Install Docker with compose feature.

  2. Fill all needed environment variables from .env.sample to .env:

    cp .env.sample .env
    # Update `.env` in your favorite editor
    
  3. Now you can docker-compose up it! If this is your first app booting, you need to create database and run migrations:

    # Your compose must be running
    docker-compose exec app mix do ecto.create, ecto.migrate
    

Now you can visit localhost:4000 from your browser.

Learn more

Getting start with technologies we are using:

Credits

We use an awesome icon as logo and favicon created by Vladimir Belochkin. We express our gratitude to the author and the Noun Project.

docdog-engine's People

Contributors

jarosluv avatar nesaulov avatar neyaz avatar retgoat avatar rtrv avatar sobolevn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

docdog-engine's Issues

Bug with version output

Mix.Project.config[:version] is not production related. It fails when starts production env mode.

Related issue: #15

Add description to projects

Hi there!

We need to add a description to the projects so that users can find out what kind of project needs to translate. Can you help us?

This is not a hard problem to solve:

  • 1. First let's add some tests for our feature:
# test/docdog/editor/editor_test.exs

...

-    @update_attrs %{"name" => "Phoenix Documentation"}
+    @update_attrs %{"name" => "Phoenix Documentation", "description" => "New description"}

...

    test "update_project/2 with valid data updates the project", %{project: project} do
      assert {:ok, project} = Editor.update_project(project, @update_attrs)
      assert %Project{} = project
      assert project.name == "Phoenix Documentation"
+     assert project.description == "New description"
    end
...
# test/docdog_web/controllers/project_controller_test.exs

...

-    project = insert(:project, user: user, name: "Elixir Documentation 1")
+    project = insert(:project, user: user, name: "Elixir Documentation 1", description: "Official documentation of Elixir language")

...

     test "lists main user projects", %{conn: conn} do
       conn = get(conn, project_path(conn, :index))
       assert html_response(conn, 200) =~ "Elixir Documentation 1"
+      assert html_response(conn, 200) =~ "Official documentation of Elixir language"
+
       assert html_response(conn, 200) =~ "Elixir Documentation 2"
+      assert html_response(conn, 200) =~ "No description"
+
       refute html_response(conn, 200) =~ "Another User Project"

...

    test "renders form", %{conn: conn} do
      conn = get(conn, project_path(conn, :new))
      assert html_response(conn, 200) =~ "New Project"
+     assert html_response(conn, 200) =~ "Description"
    end

...

  • 2. Run mix test. You'll see:
82 tests, 3 failures

Now you need to fix all of them. This is a real TDD.

  • 3. Run mix ecto.gen.migration add_description_to_projects. See one of another migrations in project and add body to the new one migration like there.

  • 4. Run mix ecto.migrate to apply the migration.

  • 5. Add new field to schema and changeset in Project module.

  • 6. Add changes to project/_project and project/form templates.

NB. In tests we want to output "No description" in case of empty description. To make it easy, simply add this function to views/project_view.ex:

def description(project) do
  project.description || "No description"
end

And call it in template.

Good luck!

Add linting in CI

Right now mix credo --strict generates more than 160 issues.

credo must be a required step inside travis.
I will add it, and also fix existing linting issues.

PR is incoming.

Add proper license

We have to choose a license before the contributions start.
Because, that's a very important thing.

Depending on the license this software might not be considered OSS.
Here's a good way to start: https://choosealicense.com/

I personally prefer MIT.

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.