Coder Social home page Coder Social logo

kaaryasthan / kaaryasthan Goto Github PK

View Code? Open in Web Editor NEW
19.0 5.0 5.0 1.01 MB

Task Management for Small Teams

License: GNU Affero General Public License v3.0

Go 85.49% Shell 0.20% JavaScript 1.29% HTML 1.02% TypeScript 5.21% CSS 0.06% PLpgSQL 6.57% Makefile 0.17%
golang angular web-application project-management issue-tracker bug-tracker task-management

kaaryasthan's Introduction

Kaaryasthan - Task Management for Small Teams

All Contributors Go Report Card Build Status License: AGPL v3 Open Source Helpers PRs Welcome

Kaaryasthan helps you to manage private projects. You can add tasks & issues (items) to your project. An item has title, description, comments, creator, assignees, and labels. Project milestones can be created with due date and items with the priority order.

This repository contains the source code of Kaaryasthan. It has source code for both user interface and server. The user interface of Kaaryasthan is written in Angular, server in Go, and PostgreSQL is used for the database.

Kaaryasthan (കാര്യസ്ഥൻ) is a Malayalam word with meaning "manager".

Key Features

  • All URLs requires authentication except login & registration. (Note: This makes it unsuitable for open source projects with public issues. Only private projects can be hosted using Kaaryasthan)

  • Easy deployment. Entire application including front-end is available as a single binary. You also need to install PostgreSQL and NGINX unless you are using hosted PostgreSQL service.

Development

You can clone Kaaryasthan repository inside $GOPATH using these commands (Note: $GOPATH should be pointing to a single directory):

mkdir -p $(go env GOPATH)/src/github.com/kaaryasthan
cd $(go env GOPATH)/src/github.com/kaaryasthan
git clone https://github.com/kaaryasthan/kaaryasthan.git

This project requires Go version 1.12 or above. This project also requires Node version 10.16 or above, preferably an LTS release.

Once Go and Node is installed, you can install these utilities:

To install the above packages:

cd $GOPATH/src/github.com/kaaryasthan/kaaryasthan
./hack/install-deps.sh

Now you can run make build command.

make build

Install Docker and Docker Compose and then run:

docker-compose up -d

Migrate database schema by running:

./kaaryasthan -migrate

To run tests:

make test

Running development servers

To run the back-end development server (from the top-level directory):

fresh

The back-end will listen on 8080 port. Whenever there is a change in Go source files, the server will be automatically restarted.

To run the front-end development server (from the ./web directory):

npm start

The web user interface will be available on 4200 port. You can use Firefox or Chrome to open it. Any change in source files will refresh the user interface automatically. There is a webhook which does this magic.

Note: Frontend development is inactive now. I am looking for contributors. If you are interested and know Angular and TypeScript, you are welcome to contribute.

License

Kaaryasthan - Task Management for Small Teams
Copyright (C) 2017 The Kaaryasthan Authors

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.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public
License along with this program.  If not, see
<http://www.gnu.org/licenses/>.

Contributors

Thanks goes to these wonderful people (emoji key):


Baiju Muthukadan

📖

This project follows the all-contributors specification. Contributions of any kind are welcome!

If you are looking forward to contribute to this project, please take a look at the CONTRIBUTING.md.

FAQ

Why this project?

I started this as a pet project for learning web application development using Go & Angular. In fact, I had started this project in 2014 with another name.

Are you seeking external contributions?

Yes! You are welcome to contribute :-)

Please take a look at the CONTRIBUTING.md for more deatils.

Why did you choose AGPLv3+ as the license?

I believe that's the best license for a web application. From the GNU website:

The GNU Affero General Public License is a modified version of the ordinary GNU GPL version 3. It has one added requirement: if you run a modified program on a server and let other users communicate with it there, your server must also allow them to download the source code corresponding to the modified version running there.

Can I use Kaaryasthan to manage open source project tasks & issues?

I think that may not be possible. Because all URLs will require authentication except login & registration. Since open source projects requires public trackers, this won't be a desirable solution. Kaaryasthan is designed exclusively for private projects. And I am not planning to change it. These are few reasons for not supporting open source projects:

  1. There are many good trackers available for open source projects.
  2. Kaaryasthan is not exclusively designed for software projects.
  3. Don't want to make the system complex to handle Slashdot effects.
  4. No plan for search engine optimization (SEO for Google, Bing etc.).
  5. Reduce the scope to keep the software as simple as possible.

The architecture doesn't support Kaaryasthan being used as a public tracker. I explained this much in-order to not receive any feature request for the same :-)


IRC #kaaryasthan@freenode  ·  Mailing List  · 

kaaryasthan's People

Contributors

baijum avatar dependabot[bot] avatar

Stargazers

 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

kaaryasthan's Issues

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.