Git Product home page Git Product logo

nearbeach / nearbeach Goto Github PK

View Code? Open in Web Editor NEW
151.0 151.0 57.0 290.6 MB

NearBeach is an open sourced project management tool, helping you keep track of your project. You can track requirements, projects and tasks

Home Page: https://nearbeach.org

License: MIT License

Python 28.50% HTML 2.38% JavaScript 8.04% Vue 33.02% SCSS 1.46% TypeScript 1.37% CSS 25.22%
beta django django-application django2 hacktoberfest hacktoberfest2023 management open-source opensource opportunity project project-management python python3

nearbeach's Introduction

NearBeach

GitHub GitHub commit activity CircleCI PyPI version PyPI - Downloads GitHub stars GitHub code size in bytes GitHub Sponsors Website Twitter Follow DeepSource

NearBeach is currently in alpha development. If you find any issues, or require any help, please do not hesitate to contact on our discord server.

What is NearBeach?

NearBeach is an open source project management system, built using Django and VueJS. The phillosophy of NearBeach is to be easy to install and use, be open sourced, and to be flexible. NearBeach is currently aimed at small/personal organisation to large enterprises. Each new module brought to NearBeach expands it's capability tenfold and brings it closer to a competing product.

Helpful links

Contributing

We welcome all contributions to NearBeach. Read our Contributing Guide.

Features

NearBeach is currently going through a massive rewrite - we have stripped out a lot of the features temporarily. We are however writting them back in. Our focus of the rewrite is to improve UI/UX, and the speed of page rendering.

Sponsors

We would like to thank the following sponsors. Their contributions have made sure I am coving any costs associated with NearBeach, i.e. hosting. To sponsor you can use either;

Software References (thank you)

NearBeach will not be where it currently is without the help of other open sourced projects. Below are the references to all the different tools that are utilised within NearBeach. NearBeach would like to thank these projects as they have help construct a better and more stable product. Please consider visiting and donating.

Browser Stack

Thank you to Browser Stack for giving us the ability to test NearBeach on all browsers and devices. Browser Stack

Snyk.io for security checks

Python Modules - Known Vulnerabilities

JavaScript Modules - Known Vulnerabilities

VueJS

Creator(s): Evan You

Github: https://github.com/vuejs/vue

License: The MIT License (MIT)

Note: VueJS is used to render all front-end UI.

TinyMCE

Creator(s): Tiny Technologies Inc.

Github: https://github.com/tinymce/tinymce

License: GNU Lesser General Public License v2.1

Note: TinyMCE is used for rich text within NearBeach

Bootstrap

Creator(s): Mark Otto, Jacob Thornton

Github: https://github.com/twbs/bootstrap

License: MIT

Note: NearBeach's CSS is currently being migrated to Bootstrap. For easy development.

Vuelidate

Creator(s): Damian Dulisz, Natalia Tepluhina, Dobromir Hristov, Marina Mosti

Github: https://github.com/vuelidate/vuelidate

License: MIT

Note: We use Vuelidate for validating the form fields before submitting.

nearbeach's People

Contributors

9a24f0 avatar adeshchoudhar avatar adityaranjanjha avatar arun-raghav-s avatar avatazjoe avatar code-in-public avatar coder-3 avatar deepsource-autofix[bot] avatar dependabot[bot] avatar dnltsk avatar henrymigo avatar ivabby avatar jayeclark avatar koffy1 avatar lmpham1 avatar mikalcallahan avatar miles170 avatar nearlynocturnalbeach avatar nisarg-chokshi avatar pdavis327 avatar pret3nti0u5 avatar raulrusu88 avatar robotichead avatar rosdyana avatar sg-007 avatar singhaniav avatar snyk-bot avatar udaysk3 avatar vinayak-00017 avatar vishwajeett22 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nearbeach's Issues

(JS-0623) Always use `key` with `v-for`

Description

It is recommended to provide a key attribute with v-for whenever possible, unless the iterated DOM content is simple, or intentionally relying on the default behavior for performance gains. It also helps to maintain internal component state down the subtree. Even for elements, it's a good practice to maintain predictable …

Occurrences

There are 2 occurrences of this issue in the repository.

See all occurrences on DeepSource → deepsource.io/gh/robotichead/NearBeach/issue/JS-0623/occurrences/

Suggestion for Vue and Python

Correct me if I'm wrong. As far I understood your process (of serving to the browser is like that)

  • User calls site
  • python responds with a custom generated html file (per target view) that contains everything
  • browser gets this file and loads all other static files (and maybe even the data in another http call? that I don't know yet)
  • vue gets created / bootstrapped and the page is done
  • until the user clicks to a different page the process starts from 0

I think with that the recreation of the vue app on new click might be "ok" right now but its still alot of repeated overhead

What I suggest would be to go the actual "Single Page Application": Vue compiled once to many static files, which includes the templates that were previously done by python but instead in vue itself - and then python would just have to handle the static and data endpoints - no more also creating the templates with that - which means it saves some CPU work per request

the new user flow would be then like this:

  • User calls site
  • python serves the static vue app as is
  • browser gets this file and loads all other static files
  • vue gets created / bootstrapped and the page is done, the vue app itself then gets all the needed data
  • when now the user clicks to navigate to a different page
    • it would only load the lazy static files, and just attach it to the current vue instance (you save the bootstrapping here aswell)

If its already like that then I'm happy that this issue can be closed :D

(PYL-W0106) Expression not assigned

Description

An expression that is not a function call is assigned to nothing. Probably something else was intended here. We recommend to review this.

Occurrences

There are 8 occurrences of this issue in the repository.

See all occurrences on DeepSource → deepsource.io/gh/robotichead/NearBeach/issue/PYL-W0106/occurrences/

Example

requirement_results.order_by('requirement_title')[:25]

Is not applied directly to the requirement_results, to do that I need to have the following code

requirement_results = requirement_results.order_by('requirement_title')[:25]

(PYL-W0120) Useless else clause detected on the loop

Description

When a loop specifies no break statement, the else clause will always execute when the loop sequence is empty, thus making it useless. It is recommended to have the statements under else in the same scope as the loop itself. If the else clause does not always execute at the …

Occurrences

There is 1 occurrence of this issue in the repository.

See all occurrences on DeepSource → deepsource.io/gh/robotichead/NearBeach/issue/PYL-W0120/occurrences/

Update of UI

The UI is currently being worked on - however has not been mapped for this release as of yet. The following issues will need to be met:

  • A style guide on how to call each HTML member i.e.
  • The old Django Templates will need to be updated with the new UI. I am creating a kanboard to help track the progress of this
  • All functionality will need to be tested after it has been applied
  • Regards
    Luke

(JS-0049) Avoid square-bracket notation when accessing properties

Description

In JavaScript, there are two ways to access properties of object: - dot-notation (object.property) ( Recommended ) - square-bracket notation (object["property"]) ( Bad Practice ) The dot notation is often preferred because it is easier to read, less verbose, and works better with aggressive JavaScript minimizers.

Occurrences

There are 23 occurrences of this issue in the repository.

See all occurrences on DeepSource → deepsource.io/gh/robotichead/NearBeach/issue/JS-0049/occurrences/

(JS-0693) Use interpolation expressions instead of the `v-html` attribute

Description

It is recommended to use interpolation expressions instead of using v-html as it prevents injection attacks like XSS.

Occurrences

There are 5 occurrences of this issue in the repository.

See all occurrences on DeepSource → deepsource.io/gh/robotichead/NearBeach/issue/JS-0693/occurrences/

Notes

If we actually apply what is recommended above, we get some unwanted side effects. Please see image
image
As per the above image, you can see the output is not present in HTML format, but ASCII instead.

We will need to find a better solution to this problem, as it effect multiple places where users can easily apply the attacks.

(FLK-E501) Line too long

Description

Line length greater than configured max_line_length detected, defaults to 79 character. This limit can be configured docs

Occurrences

There are 293 occurrences of this issue in the repository.

See all occurrences on DeepSource → deepsource.io/gh/robotichead/NearBeach/issue/FLK-E501/occurrences/

Tips

list_of_opportunity_stage(list_order="6", opportunity_stage_description="Perception Analysis", probability_success="60"),

For the above line, we have the style;

list_of_opportunity_stage(
    list_order="6", 
    opportunity_stage_description="Perception Analysis", 
    probability_success="60"
),

For any Python imports, try and separate the lines with a simple \

from NearBeach.models import kanban_board, \
    kanban_card, \
    opportunity, \
    organisation, \
    quote, \
    project, \
    request_for_change, \
    requirement, \
    requirement_item, \
    task, \
    whiteboard

Good Luck :D

**Cards**

Cards can be added to your board to track the progress of issues and pull requests. You can also add note cards, like this one!

(PYL-R1705) Unnecessary `else` / `elif` used after `return`

Description

The use of else or elif becomes redundant and can be dropped if the last statement under the leading if / elif block is a return statement. In the case of an elif after return, it can be written as a separate if block. For else blocks after return, the …

Occurrences

There are 2 occurrences of this issue in the repository.

See all occurrences on DeepSource → deepsource.io/gh/robotichead/NearBeach/issue/PYL-R1705/occurrences/

(JS-0682) Prefer default value for props

Description

It is recommended to have a default value for props that are not marked as required (except Boolean props). Default values are required as these values might not provide, so having a default value is recommended.

Occurrences

There are 130 occurrences of this issue in the repository.

See all occurrences on DeepSource → deepsource.io/gh/robotichead/NearBeach/issue/JS-0682/occurrences/

Tips

The following are the preferred methods for each variable type;

variableA: {
    type: Number,
    default: 0,
},
variableB: {
    type: String,
    default: "",
},
variableC: Boolean, //Not needed for Booleans :D
variableD: {
    type: Array,
    default: function() {
        return [];
    },
},

Please note the array's default is.... .... .... a function.

Latest docker image

Describe the bug
The latest docker image doesn't work I suspect it is because the image was made on a m1 mac.

To Reproduce
Steps to create the behavior:

  1. Pull and run the latest docker tag on nearbeach on a linux machine.
  2. Do docker logs and the container name
  3. See error

Expected behavior
Near Beach to be running.
Actual Results
It errors :((
Useful infomation
Docker logs https://sourceb.in/5lILRyHUHV
System it is running on https://i.imgur.com/BAwWctT.png

(JS-0242) Use `const` declarations for variables that are never reassigned

Description

Variables that are not re-assigned are referred to as constant variables. So, we recommend using const for such variables instead of let to define because the value of a variable declared with const remains the same within its scope. It cannot be updated or re-declared and also reduces cognitive load …

Occurrences

There are 2 occurrences of this issue in the repository.

See all occurrences on DeepSource → deepsource.io/gh/robotichead/NearBeach/issue/JS-0242/occurrences/

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.