Skip to content

Commit

Permalink
Adding a getting started page and linking from the user and team invi…
Browse files Browse the repository at this point in the history
…te signup page views.
  • Loading branch information
adrianwebb committed May 30, 2024
1 parent c882835 commit ab29e94
Show file tree
Hide file tree
Showing 7 changed files with 204 additions and 4 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.27
0.1.28
148 changes: 148 additions & 0 deletions app/landing/templates/getting_started.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
{% extends "base.html" %}

{% load static i18n %}

{% block title %}
Getting Started
{% endblock title %}
{% block content %}
<div id="getting-started-page">
<div class="hero-banner d-flex justify-content-center mb-3">
<div class="hero-banner-content row d-flex justify-content-center">
<div class="hero-info col-md-9 text-center text-lg-start">
<h1 class="display-6 fw-bold lh-1 mt-lg-5 mb-3 text-center">Getting Started with the Nexical Knowledge Explorer</h1>
<hr />
<p class="lead p-3">
Nexical Core is an open AI platform that accelerates business productivity across your organization
focused on data privacy, auditability and security, and research efficiency with your internal data and systems,
while being cost effective and avoiding vendor lock-in.
</p>
<p class="lead p-3 text-center">
<strong>You can get started with Nexical in 4 easy steps</strong>...
</p>
</div>
</div>
</div>
<div class="how-to-step-wrapper">
<div class="row card how-to-step teams-section">
<h2 class="how-to-title">1. Create Teams</h2>
<hr />
<div class="row">
<div class="col-md-9 how-to-text p-3">
<p class="lead">The first step in using Nexical Knowledge Explorer is to set up one or more teams.</p>
<div class="border p-3">
<p>All documents, projects, and research material are accessible only to active team members.</p>
<p>
At any time you are active in a single team, which may be changed by selecting another team in the team selector at the top right of the page.
</p>
</div>
</div>
<div class="col-md-3 d-flex align-items-center">
<a href="{% url 'teams:list' %}" class="how-to-link btn btn-primary mx-auto d-flex align-items-center"><i class="bx bx-caret-right-circle mx-auto"></i></a>
</div>
</div>
</div>
<div class="row card how-to-step libraries-section">
<h2 class="how-to-title">2. Import Document Libraries</h2>
<hr />
<div class="row">
<div class="col-md-9 how-to-text p-3">
<p class="lead">The next step is to import business document libraries for use in integrated research activities.</p>
<div class="border p-3">
<p>When you upload documents to the Nexical engine they are processed and prepared for AI analysis over time.</p>
<p>
The core platform supports manual document uploads but bulk and automated imports can easily be added by our team.
</p>
</div>
</div>
<div class="col-md-3 d-flex align-items-center">
<a href="{% url 'documents:list' %}" class="how-to-link btn btn-primary mx-auto d-flex align-items-center"><i class="bx bx-caret-right-circle mx-auto"></i></a>
</div>
</div>
</div>
<div class="row card how-to-step projects-section border">
<h2 class="how-to-title">3. Manage Projects</h2>
<hr />
<div class="row">
<div class="col-md-9 how-to-text p-3">
<p class="lead">All AI research artifacts and human notes are grouped into projects.</p>
<div class="border p-3">
<p>Projects allow you to configure AI systems and link document libraries across all related research activities.</p>
<p>Projects when combined with tag filtering can provide a simple and streamlined knowledge management system.</p>
</div>
</div>
<div class="col-md-3 d-flex align-items-center">
<a href="{% url 'projects:list' %}" class="how-to-link btn btn-primary mx-auto d-flex align-items-center"><i class="bx bx-caret-right-circle mx-auto"></i></a>
</div>
</div>
</div>
</div>
<div class="how-to-research-wrapper mb-4">
<div class="row card how-to-step research-section">
<h2 class="how-to-title">4. Conduct Research</h2>
<hr />
<div class="row">
<div class="col-md-9 how-to-text p-3">
<p class="lead">Once we have a project we can start querying the referenced documents and taking notes.</p>
<div class="border p-3">
<p>
Nexical Core seeks to combine human research and machine research into a common searchable knowledge base over time.
</p>
<p>
As more AI generated artifacts and notes are added the AI incorporates that information for new research requests.
</p>
<p>
AI generated artifacts and information and team notes can be tagged and easily filtered within the currently active project.
</p>
</div>
</div>
<div class="col-md-3 d-flex align-items-center">
<a href="{% url 'research:panel' %}" class="how-to-link btn btn-primary mx-auto d-flex align-items-center"><i class="bx bx-caret-right-circle mx-auto"></i></a>
</div>
</div>
</div>
</div>
<hr />
<div class="row how-to-extra-wrapper mt-4">
<div class="col-lg-6 row card how-to-step extra-step api-section">
<h2 class="how-to-title">Interface with the API</h2>
<hr />
<div class="row mb-2">
<div class="col-md-8 how-to-text p-3">
<p class="lead">
When you need more capabilities than our web interface or you need to integrate with external systems, you can build off our REST API.
</p>
</div>
<div class="col-md-4 d-flex align-items-start">
<a href="{% url 'api:docs' %}" class="how-to-link btn btn-primary mx-auto d-flex align-items-center"><i class="bx bx-caret-right-circle mx-auto"></i></a>
</div>
</div>
<div class="border p-3">
<p>
All Nexical Knowledge Explorer data and capabilities can be accessed and performed through an easy to use OpenAPI compatible REST API.
</p>
<p>
Our API is well documented and you can experiment with it through the Nexical Core Knowledge Explorer user interface.
</p>
</div>
</div>
<div class="col-lg-5 row card how-to-step extra-step account-section">
<h2 class="how-to-title">Manage your Account</h2>
<hr />
<div class="row mb-2">
<div class="col-md-7 how-to-text p-3">
<p class="lead">You can easily edit your profile information, verified emails, passwords, and API tokens.</p>
</div>
<div class="col-md-5 d-flex align-items-start">
<a href="{% url 'users:me' %}" class="how-to-link btn btn-primary mx-auto d-flex align-items-center"><i class="bx bx-caret-right-circle mx-auto"></i></a>
</div>
</div>
<div class="border p-3">
<p>
When you need to modify anything relating to your user account you can find all user actions in the sidebar menu on the left.
</p>
</div>
</div>
</div>
</div>
{% endblock content %}
1 change: 1 addition & 0 deletions app/landing/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@
app_name = "landing"
urlpatterns = [
path("home/", views.HomeView.as_view(), name="home"),
path("start/", view=views.StartView.as_view(), name="start"),
]
9 changes: 9 additions & 0 deletions app/landing/views.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from django.contrib.auth.mixins import LoginRequiredMixin
from django.shortcuts import redirect
from django.utils.decorators import method_decorator
from django.views import View
Expand All @@ -20,3 +21,11 @@ def dispatch(self, request, *args, **kwargs):
if request.user.is_authenticated:
return redirect("users:me")
return super().dispatch(request, *args, **kwargs)


class StartView(LoginRequiredMixin, TemplateView):
template_name = "getting_started.html"

def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
return context
42 changes: 42 additions & 0 deletions app/static/sass/project.scss
Original file line number Diff line number Diff line change
Expand Up @@ -1496,6 +1496,48 @@ footer {
border: 1px solid $light-grey;
}

//////////////////////////
// Getting Started Page //
//////////////////////////

#getting-started-page {
padding: 0 50px;
}

#getting-started-page .hero-banner {
width: 100%;
color: $dark-grey;
}

#getting-started-page h1 {
color: $dark-green !important;
}

#getting-started-page .how-to-step {
margin: 40px 0;
padding: 20px;
}

#getting-started-page .how-to-title {
padding: 20px;
background: linear-gradient(to right, $light-green, $white);
}

#getting-started-page .how-to-link {
text-align: center;
width: 150px;
height: 150px;
}

#getting-started-page .how-to-link i {
vertical-align: middle;
font-size: 5em;
}

#getting-started-page .extra-step {
margin: 20px;
}

/////////////////
// Signup Page //
/////////////////
Expand Down
4 changes: 2 additions & 2 deletions app/teams/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ def form_valid(self, form):
return super().form_valid(form)

def get_success_url(self, **kwargs):
return reverse("users:me")
return reverse("landing:start")

def dispatch(self, request, *args, **kwargs):
self.invite = get_object_or_404(models.TeamInvite, pk=self.kwargs["pk"])
Expand All @@ -385,7 +385,7 @@ def dispatch(self, request, *args, **kwargs):
raise PermissionDenied

self._add_membership(self.request.user)
return redirect("users:me")
return redirect("teams:list")

user = check_verified_email(self.invite.email)
if user:
Expand Down
2 changes: 1 addition & 1 deletion app/users/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def form_valid(self, form):
return super().form_valid(form)

def get_success_url(self, **kwargs):
return reverse("users:me")
return reverse("landing:start")


class DetailView(LoginRequiredMixin, DetailView):
Expand Down

0 comments on commit ab29e94

Please sign in to comment.