AJIR

manage products and projects, document them, track bugs and feedbacks, track time and timesheet automatically.

Welcome to AJIR documentation

This documentation is written in AJIR.

Core goals & values

  • allowing teams to focus on doing rather than managing and dealing with administrative stuff
  • developers, product owners and managers can all get a relevant view of products evolution and state
  • see what blocks you and what you are blocking, prioritize
  • estimate work load
  • opiniated yet flexible
  • simple yet powerful

AJIR Features

  • Product management
  • Project management
  • Time tracking
  • Documentation
  • Feedbacks collection and bugs monitoring
  • Global search for Products, Features, Tasks, Task Plans, Technologies and Users

Design sytems

manage their design systems for everyone to consult and refer to.

coming soon...

Documents

seamlessly document the Products & Features without thinking about how to organize the documentation, access the automatically structured documentation (as an AJIR user but also external) and search.

coming soon...

Rich text keyboard shorcuts

Keyboards shortcuts

Window +

. => insert emoji

CTRL +

H => h1, h2, h3

B => bold

I => italic

U => underline

P => change text color

S => strikethrough

Q => block quote

D => code block

L => bullet list, numbered list

A => select all

C => copy

X => cut

V => paste

Z => undo

Y => redo

F => find on page

Feedbacks

get Feedbacks on their Features via AJIR API or directly. Bug, feature request or help tickets are all different Feedbacks.

Feedbacks are created by your products code and assigned to Features, thanks to an easy to use API. It allows your to monitor user feedbacks, bugs and feature requests.

You can create Feedback origins at the Feature level, in order to automatically match Feedbacks to Features with less boilerplate code.

Example in Django Python with a custom 500 handler method:

# store your AJIR token in an environment variable and fetch it in the settings
headers = {
    "Authorization": settings.AJIR_API_KEY,
}

def custom_server_error(request):
    # get named url from path info
    origin_app = resolve(request.path_info).app_name
    origin_url = resolve(request.path_info).url_name
    origin = f"{origin_app}:{origin_url}"
    # get host from absolute Url
    url = request.build_absolute_uri()
    host = request.get_host()
    if host == 'www.prod.com':
        environment = 'prod'
    else:
        environment = 'test'
    
    # POST to the AJIR API with the named Url as origin
    # If this origin has been added to a AJIR Feature, 
    # it will be automatically linked to it. 
    # If not, it will fallback to the feature
    requests.post(
        "https://app.ajir.app/api/feedbacks/",
        headers=headers,
        data={
            "feature": <your fallback feature id>,
            "origin": origin,
            "text": origin,
            "user_id": str(request.user.id),
            "user_email": request.user.email,
            "url": url,
            "feedback_type": "bug",
            'environment': environment,
        },
    )
    return server_error(request)

Help desk

With the same simple API, you can manage your Help desk from AJIR.

When POSTing to AJIR API, just change the feedback_type to 'bug', and ideally fill in the user_email field so you can interact with the user in need of help.

For example, if you create a Task from a Feedback with a user_email, the user will be notified that you took his pain seriously !

If a help desk email is configured for your company, automatic emails will be sent from this email, so that the user can directly answer and interact with your support (company settings available on the home page if you are a superuser for your company).

User feedback and feature request

You can also build a front-end feature to collect feedbacks from your users and send them directly to AJIR via the API, changing the feedback_type to 'feedback' (the default) or 'feature'.

Products & Features

organize their products and features hierarchy, understand the Technologies used and the dependencies between them. They are 'here to stay' and describe WHAT it is.

Product

In AJIR, everything begins with a Product. As a user, you are part of a company and can access its root products here.

Products can have sub-products. Each Product has a single owner.

A documentation can be nicely formatted and added to Products. The link to it will be available at the end of the description.

API documentation

API documentation in OpenAPI format can also be uploaded, a dedicated linked will be generated and the documentation will be rendered in 3 different styles (Swagger, Swagger dark and ReDoc). You can then simply add the link to the Product's documentation.

GitHub repository

You can add an Url to the corresponding repository. It will be display on the Product's page. Additionally, you can add an API access token. Please read the GitHub link section below.

Feature

Each Product can have Features.

Together with Products, Features describe what the users can achieve with it.

A Feature has a status, either planned, functional or obsolete.

The description field will go something like this:

[Product/Feature] users can do something.

A Feature can 'use' other Features, from the same or other Products. Dependencies are then retrieved dynamically, in both ways (is using / is used by) and can be consulted at the Feature and Product levels.

A documentation can be added to Features.

Bulk actions

From Feature lists across the application, you can bulk group Tasks into a Product and bulk create a common Task. The bulk actions are available in a drop down menu by clicking on the 3 dots and Feature selection is done with the card's checkboxes.

Questions

ask formal questions to other users, answer and track status.

coming soon...

Roadmaps & budget

set a budget for a given period of time. Set goals and estimated needs to reach them. Allocate resources. Compare and reconciliate. Follow-up on consumption levels and speed.

coming soon...

Tasks & Milestones

create and manage Tasks, work on them and track time automatically. Tasks are here to be done and 'forgotten about'. They describe HOW to build it and what has to be done.

Task

Tasks belong to Features and represent what has to be done in order to build the Products and its Features.

A Task has a status, either todo, in progress or done.

Each task has a single owner and Tasks receive an estimation of the work to be done, in hours.

A Task can depend on other Tasks. Dependencies are then retrieved dynamically, in both ways (blocks / is waiting on).

Bulk actions

From Task lists across the application, you can bulk group Tasks into a Task Plan (see below) and bulk remove the current Task Plan. The bulk actions are available in a drop down menu by clicking on the 3 dots and Task selection is done with the card's checkboxes.

You can get summaries at different levels in the application and get estimations about the work that is left to do.

Shortcut

From the global search, you can create a Task.

Milestone

A Milestone is a group of Tasks. It has a single owner and is optionally linked to a Product.

You can retrieve associated Tasks and follow your plan's execution on the dedicated page.

Access rights

securely access the objects either in read or edit mode.

coming soon...

Flagged objects

flag Products, Features, Tasks, Milestones and Roadmaps. Flagged objects will appear on top of the lists across the application

You can toggle a Flag on Features, Tasks, Milestones and Roadmaps. Flagged objects will appear on top of the lists across the application.

Global search

search Products, Features, Tasks, etc.

AJIR's global search is accessible anytime from the top bar, either by clicking on it or hitting CTRL + Space.

You can search Products, Features, Tasks, Users, Document Blocks, Technologies and Milestones.

Quick actions

When in the search modal, you get keyboard accessible quick actions to take a quick personal Note and to create a Task.

Labels

create custom labels to further categorize objects in AJIR.

Task Labels

You can create labels to further categorize Tasks, e.g. the nature of the Task, the current step toward completion or its priority. It is totally optional and gives you an additional way of retrieving and sorting Tasks in the Task Explorer

Documents Labels

Documents Labels

You can create custom labels for your Documents and use them as an additional way of querying, sorting them in the Document Explorer.

You can also use them to refine your AJIR API queries, in order to use AJIR as a Headless CMS to manage articles for a blog or anything else.

Example: create a 'blog-article' label and a 'published' label. From your blog's backend, query AJIR API's endpoint to retrieve all your published blog articles and display them.

Notes

take quick Notes to be reminded, like sticky notes that can be written at the Product, Feature, Task and User levels.

A Note is a quick note (no surprise 😎), to be reminded. You can add Notes to Products, Features, Tasks and Users.

Shortcut

From the global search, you can add Notes to your user without leaving the page you are on.

Rich text editing

write beautifully styled text comfortably.

Rich text keyboard shorcuts

Keyboards shortcuts

Window +

. => insert emoji

CTRL +

H => h1, h2, h3

B => bold

I => italic

U => underline

P => change text color

S => strikethrough

Q => block quote

D => code block

L => bullet list, numbered list

A => select all

C => copy

X => cut

V => paste

Z => undo

Y => redo

F => find on page

Status wall

write statuses for their user and products so other can see them on the home page as a status wall.

coming soon...

Technologies

add the Technologies used in their company and assign them to Features. Get a summary of their use on each Technology dedicated page.

Technologies are used by your Features and you can get a summary of their use across your company on their dedicated page.

User detail

get an overview of a User, his Products, Tasks and other objects that he owns.

coming soon...