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
AJIR API
interact with AJIR objects via an easy-to-use API
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...
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.
Timesheets
automatically bill Work Sessions.
coming soon...
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
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.
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...