Skip to content

Commit 170ef6f

Browse files
committed
restore readme.adoc
1 parent 7a06239 commit 170ef6f

File tree

1 file changed

+192
-0
lines changed

1 file changed

+192
-0
lines changed

README.adoc

Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
= GraphAcademy Course Content
2+
3+
This repository holds the course curriculum for link:https://graphacademy.neo4j.com[GraphAcademy^].
4+
5+
6+
== Prerequisites
7+
8+
You will need the following software to run GraphAcademy locally:
9+
10+
* link:https://www.docker.com/[Docker^]
11+
* link:https://aws.amazon.com/cli/[AWS CLI^]
12+
* link:https://nodejs.org/en/download[Node.js^]
13+
* link:https://git-scm.com/downloads[Git]
14+
15+
Recommended:
16+
17+
* link:https://code.visualstudio.com/Download[VS Code^]
18+
* Asciidoc extension
19+
20+
== Setup
21+
22+
This repository uses link:https://docs.docker.com/compose/install/[`docker-compose`] to create a local server using the latest production build of the GraphAcademy website (link:https://github.com/neo4j-graphacademy/website/[repo here^]). The docker image is stored on AWS ECR, so you will need credentials - talk to mailto:adam@neo4j.com[Adam].
23+
24+
1. Clone this repository
25+
2. Install the link:https://aws.amazon.com/cli/[AWS CLI^]
26+
3. Run `aws configure` to configure the AWS CLI
27+
4. Log in to docker using the credentials above:
28+
29+
aws ecr get-login-password --region us-east-1 | docker login -u AWS --password-stdin 715633473519.dkr.ecr.us-east-1.amazonaws.com
30+
31+
5. Install the dependencies using NPM
32+
33+
npm install
34+
35+
6. You will need to create a `.env` file in the project root with Auth0 configuration. You can get an example file from mailto:adam@neo4j.com[Adam] or mailto:martin.ohanlon@neo4j.com[Martin].
36+
* `NEO4J_HOST`
37+
* `NEO4J_USERNAME`
38+
* `NEO4J_PASSWORD`
39+
* `AUTH0_CLIENT_ID`
40+
* `AUTH0_CLIENT_SECRET`
41+
* `AUTH0_ISSUER_BASE_URL`
42+
* `CDN_URL`
43+
44+
7. Run `npm run dev` to start the server
45+
46+
* The local server will be available at http://localhost:3000 +
47+
* A Neo4j instance will be available on http://localhost:7474 +
48+
* A process will listen for changes in the `asciidoc/` folder and sync the content to Neo4j
49+
50+
=== Devcontainer
51+
52+
If you are using VS Code, you can use the devcontainer to run the application in a container.
53+
54+
You will need the link:https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers[Dev Containers^] extension installed and link:https://www.docker.com/[Docker^] running.
55+
56+
When the devcontainer is started, it will:
57+
58+
* Install all dependencies
59+
* Start the GraphAcademy application and Neo4j database.
60+
61+
You can run the content update and sync by running the following command in a terminal:
62+
63+
[source,sh]
64+
npm run dev:watch
65+
66+
== File Structure
67+
68+
All content lives in the `asciidoc/` directory. As you modify the content, a process will sync the course structure to Neo4j.
69+
70+
* `categories/` - Category information
71+
* `courses/` - All courses are organised into the own folder structure with modules and lessons
72+
* `emails/` - The emails sent to users on enrolment, completion and a reminder email when the user has been inactive for 7 days
73+
* `languages/` - i18n phrases for courses in languages other than English.
74+
* `pages/` - "CMS" content displayed throughout the website, for example the `/certifications/` page
75+
* `shared/` - Content shared across courses
76+
* `statuses/` - Meta data around course statuses
77+
78+
79+
=== Course Structure
80+
81+
[source]
82+
----
83+
asciidoc
84+
+ courses/
85+
+ {course-slug}/ - Course Folder
86+
+ badge.svg - SVG badge used across the site
87+
| overview.adoc - Course meta data and content used on the course overview page
88+
+ modules/ - Each course is split into modules
89+
+ {module-slug}/
90+
| overview.adoc
91+
+ lessons/ - A module is split into lessons
92+
+ {lesson-slug}/
93+
| lesson.adoc
94+
+ questions/ - A lesson can be optional, otherwise will have questions.
95+
| question-1.adoc
96+
| question-2.adoc
97+
----
98+
99+
100+
== Workshops
101+
102+
Workshops are instructor-led courses that are designed to be delivered in a classroom setting. They should not be used for self-study. The following workshops are available:
103+
104+
* **Introduction to Graph Databases Workshop** (`workshop-fundamentals`) - Learn about Graph theory, Neo4j fundamentals, and how to read and write data using Cypher. +
105+
link:https://graphacademy.neo4j.com/courses/workshop-fundamentals[View Workshop]
106+
* **Importing Data into Neo4j Workshop** (`workshop-importing`) - Learn how to import your data into Neo4j +
107+
link:https://graphacademy.neo4j.com/courses/workshop-importing[View Workshop]
108+
* **Gen-AI - Hands-on Workshop** (`genai-workshop`) - GenAI Beyond Chat with RAG, Knowledge Graphs and Python +
109+
link:https://graphacademy.neo4j.com/courses/genai-workshop[View Workshop^]
110+
* **Mastering Retrieval-Augmented Generation (RAG)** (`genai-workshop-graphrag`) - Learn how to implement GraphRAG with the neo4j-graphrag Python Package +
111+
link:https://graphacademy.neo4j.com/courses/genai-workshop-graphrag[View Workshop^]
112+
// * **GenAI Workshop - TypeScript** (`genai-workshop-typescript`) - Build a Conference Chatbot with LangChain and Neo4j +
113+
// link:https://graphacademy.neo4j.com/courses/genai-workshop-typescript[View Workshop^]
114+
115+
116+
== QA
117+
118+
A suite of tests have been setup to ensure courses meet the right standard.
119+
120+
To open the test suite run:
121+
122+
[source,sh]
123+
npm run test
124+
125+
This will open up a UI. Select E2E testing > Chrome and then select the course.
126+
127+
To create a test for your course, you can copy one of the existing files in the `cypress/e2e` folder to `cypress/e2e/{slug}.cy.js` and then change line 6 to `cy.getCourseDetails('{slug}')`/
128+
129+
130+
== Contributing
131+
132+
To create a new course or modify an existing course, please create a new branch and make your changes.
133+
Once you have finished, create a new PR and add `adam-cowley` as a reviewer.
134+
135+
git checkout -b new-course
136+
mkdir asciidoc/courses/new-course/
137+
echo "= New Course\n:status: draft" > asciidoc/courses/new-course/course.adoc
138+
139+
git add asciidoc/courses/new-course/
140+
git commit -m "Added new course"
141+
git push --set-upstream origin new-course
142+
143+
Before creating the PR, please rebase your branch on the main branch.
144+
145+
git fetch origin main
146+
git rebase main
147+
148+
149+
=== Creating a PR
150+
151+
When you create a PR, select the correct template:
152+
153+
* link:https://github.com/neo4j-graphacademy/courses/compare/main...other?template=course_draft.md[Course Draft Template^]
154+
* link:https://github.com/neo4j-graphacademy/courses/compare/main...other?template=course_release.md[Course Release Template^]
155+
156+
The checklist must be completed before the PR can be merged.
157+
158+
159+
=== Generating a Banner
160+
161+
To generate a banner image for a course, run the following command:
162+
163+
[source]
164+
npm run generate:ogimages
165+
166+
The command scans through the `asciidoc/` folder, finds all courses that don't include a `banner.png` image and attempts to create them.
167+
168+
== Deploying Changes
169+
170+
When a new application server is created, the latest tagged version of this repository is downloaded by the server.
171+
172+
You can use the `npm version` command to create a new tag. First, run a `git pull --tags` to get the latest commits and tags from the server, then run the `npm version` command to create a new tag. Once you are done, run `git push --tags`.
173+
174+
git pull --tags origin main
175+
npm version patch
176+
git push --tags origin main
177+
178+
179+
* `npm version patch` - To be used when minor fixes are made to an existing course
180+
* `npm version minor` - To be used when a new course is released
181+
* `npm version major` - To be used when a major change is made to the repository - for example, multiple course changes, or addition of a new category
182+
183+
== Linking Certifications
184+
185+
To link certifications from the certifications repository, create a symlink:
186+
187+
[source,sh]
188+
ln -s ../certifications/asciidoc/certifications/neo4j-certification asciidoc/certifications/neo4j-certification
189+
190+
== Documentation
191+
192+
Additional documentation is located in the link:docs/[Docs folder].

0 commit comments

Comments
 (0)