chore: remove _notes and .obsidian from git tracking
- Untrack _notes/ vault and .obsidian/ config - Update .gitignore to exclude both permanently
This commit is contained in:
13
.gitignore
vendored
13
.gitignore
vendored
@@ -53,19 +53,12 @@ web/assets/login-bg.mp4
|
|||||||
# large binary assets — keep local only, not tracked in git
|
# large binary assets — keep local only, not tracked in git
|
||||||
assets/login-bg.mp4
|
assets/login-bg.mp4
|
||||||
|
|
||||||
# Obsidian — exclude personal workspace state, keep plugin/vault config
|
# Claude Code / MCP / vibe-coding tool artifacts — keep local only
|
||||||
.obsidian/workspace.json
|
|
||||||
.obsidian/workspace-mobile.json
|
|
||||||
.obsidian/cache
|
|
||||||
|
|
||||||
# Claude Code / MCP / vibe-coding tool artifacts
|
|
||||||
.claude/
|
.claude/
|
||||||
.mcp.json
|
.mcp.json
|
||||||
CLAUDE.md
|
CLAUDE.md
|
||||||
|
_notes/
|
||||||
|
.obsidian/
|
||||||
hero_section_improvements.csv
|
hero_section_improvements.csv
|
||||||
security_audit_report.csv
|
security_audit_report.csv
|
||||||
feature_gap_analysis.csv
|
feature_gap_analysis.csv
|
||||||
|
|
||||||
# Obsidian workspace state in nested vaults
|
|
||||||
**/.obsidian/workspace.json
|
|
||||||
**/.obsidian/workspace-mobile.json
|
|
||||||
|
|||||||
12
.obsidian/app.json
vendored
12
.obsidian/app.json
vendored
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"useMarkdownLinks": true,
|
|
||||||
"newFileLocation": "folder",
|
|
||||||
"newFileFolderPath": "_notes/08 - Meetings & Notes",
|
|
||||||
"attachmentFolderPath": "_notes/assets",
|
|
||||||
"defaultViewMode": "source",
|
|
||||||
"foldHeading": false,
|
|
||||||
"showLineNumber": true,
|
|
||||||
"readableLineLength": true,
|
|
||||||
"strictLineBreaks": false,
|
|
||||||
"showFrontmatter": false
|
|
||||||
}
|
|
||||||
7
.obsidian/community-plugins.json
vendored
7
.obsidian/community-plugins.json
vendored
@@ -1,7 +0,0 @@
|
|||||||
[
|
|
||||||
"dataview",
|
|
||||||
"obsidian-kanban",
|
|
||||||
"templater-obsidian",
|
|
||||||
"calendar",
|
|
||||||
"obsidian-tasks-plugin"
|
|
||||||
]
|
|
||||||
23
.obsidian/core-plugins.json
vendored
23
.obsidian/core-plugins.json
vendored
@@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
"file-explorer": true,
|
|
||||||
"global-search": true,
|
|
||||||
"switcher": true,
|
|
||||||
"graph": true,
|
|
||||||
"backlink": true,
|
|
||||||
"canvas": true,
|
|
||||||
"outgoing-link": true,
|
|
||||||
"tag-pane": true,
|
|
||||||
"properties": true,
|
|
||||||
"note-composer": true,
|
|
||||||
"command-palette": true,
|
|
||||||
"editor-status": true,
|
|
||||||
"starred": true,
|
|
||||||
"markdown-importer": false,
|
|
||||||
"zk-prefixer": false,
|
|
||||||
"random-note": false,
|
|
||||||
"outline": true,
|
|
||||||
"word-count": true,
|
|
||||||
"file-recovery": true,
|
|
||||||
"publish": false,
|
|
||||||
"sync": false
|
|
||||||
}
|
|
||||||
1
_notes/.obsidian/app.json
vendored
1
_notes/.obsidian/app.json
vendored
@@ -1 +0,0 @@
|
|||||||
{}
|
|
||||||
1
_notes/.obsidian/appearance.json
vendored
1
_notes/.obsidian/appearance.json
vendored
@@ -1 +0,0 @@
|
|||||||
{}
|
|
||||||
7
_notes/.obsidian/community-plugins.json
vendored
7
_notes/.obsidian/community-plugins.json
vendored
@@ -1,7 +0,0 @@
|
|||||||
[
|
|
||||||
"dataview",
|
|
||||||
"obsidian-kanban",
|
|
||||||
"templater-obsidian",
|
|
||||||
"calendar",
|
|
||||||
"obsidian-tasks-plugin"
|
|
||||||
]
|
|
||||||
33
_notes/.obsidian/core-plugins.json
vendored
33
_notes/.obsidian/core-plugins.json
vendored
@@ -1,33 +0,0 @@
|
|||||||
{
|
|
||||||
"file-explorer": true,
|
|
||||||
"global-search": true,
|
|
||||||
"switcher": true,
|
|
||||||
"graph": true,
|
|
||||||
"backlink": true,
|
|
||||||
"canvas": true,
|
|
||||||
"outgoing-link": true,
|
|
||||||
"tag-pane": true,
|
|
||||||
"footnotes": false,
|
|
||||||
"properties": true,
|
|
||||||
"page-preview": true,
|
|
||||||
"daily-notes": true,
|
|
||||||
"templates": true,
|
|
||||||
"note-composer": true,
|
|
||||||
"command-palette": true,
|
|
||||||
"slash-command": false,
|
|
||||||
"editor-status": true,
|
|
||||||
"bookmarks": true,
|
|
||||||
"markdown-importer": false,
|
|
||||||
"zk-prefixer": false,
|
|
||||||
"random-note": false,
|
|
||||||
"outline": true,
|
|
||||||
"word-count": true,
|
|
||||||
"slides": false,
|
|
||||||
"audio-recorder": false,
|
|
||||||
"workspaces": false,
|
|
||||||
"file-recovery": true,
|
|
||||||
"publish": false,
|
|
||||||
"sync": true,
|
|
||||||
"bases": true,
|
|
||||||
"webviewer": false
|
|
||||||
}
|
|
||||||
22
_notes/.obsidian/graph.json
vendored
22
_notes/.obsidian/graph.json
vendored
@@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
"collapse-filter": true,
|
|
||||||
"search": "",
|
|
||||||
"showTags": false,
|
|
||||||
"showAttachments": false,
|
|
||||||
"hideUnresolved": false,
|
|
||||||
"showOrphans": true,
|
|
||||||
"collapse-color-groups": true,
|
|
||||||
"colorGroups": [],
|
|
||||||
"collapse-display": true,
|
|
||||||
"showArrow": false,
|
|
||||||
"textFadeMultiplier": 0,
|
|
||||||
"nodeSizeMultiplier": 1,
|
|
||||||
"lineSizeMultiplier": 1,
|
|
||||||
"collapse-forces": true,
|
|
||||||
"centerStrength": 0.518713248970312,
|
|
||||||
"repelStrength": 10,
|
|
||||||
"linkStrength": 1,
|
|
||||||
"linkDistance": 250,
|
|
||||||
"scale": 2.078152725527059,
|
|
||||||
"close": true
|
|
||||||
}
|
|
||||||
10
_notes/.obsidian/plugins/calendar/data.json
vendored
10
_notes/.obsidian/plugins/calendar/data.json
vendored
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"shouldConfirmBeforeCreate": true,
|
|
||||||
"weekStart": "locale",
|
|
||||||
"wordsPerDot": 250,
|
|
||||||
"showWeeklyNote": false,
|
|
||||||
"weeklyNoteFormat": "",
|
|
||||||
"weeklyNoteTemplate": "",
|
|
||||||
"weeklyNoteFolder": "",
|
|
||||||
"localeOverride": "system-default"
|
|
||||||
}
|
|
||||||
4459
_notes/.obsidian/plugins/calendar/main.js
vendored
4459
_notes/.obsidian/plugins/calendar/main.js
vendored
File diff suppressed because it is too large
Load Diff
10
_notes/.obsidian/plugins/calendar/manifest.json
vendored
10
_notes/.obsidian/plugins/calendar/manifest.json
vendored
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "calendar",
|
|
||||||
"name": "Calendar",
|
|
||||||
"description": "Calendar view of your daily notes",
|
|
||||||
"version": "1.5.10",
|
|
||||||
"author": "Liam Cain",
|
|
||||||
"authorUrl": "https://github.com/liamcain/",
|
|
||||||
"isDesktopOnly": false,
|
|
||||||
"minAppVersion": "0.9.11"
|
|
||||||
}
|
|
||||||
20876
_notes/.obsidian/plugins/dataview/main.js
vendored
20876
_notes/.obsidian/plugins/dataview/main.js
vendored
File diff suppressed because one or more lines are too long
11
_notes/.obsidian/plugins/dataview/manifest.json
vendored
11
_notes/.obsidian/plugins/dataview/manifest.json
vendored
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "dataview",
|
|
||||||
"name": "Dataview",
|
|
||||||
"version": "0.5.68",
|
|
||||||
"minAppVersion": "0.13.11",
|
|
||||||
"description": "Complex data views for the data-obsessed.",
|
|
||||||
"author": "Michael Brenan <blacksmithgu@gmail.com>",
|
|
||||||
"authorUrl": "https://github.com/blacksmithgu",
|
|
||||||
"helpUrl": "https://blacksmithgu.github.io/obsidian-dataview/",
|
|
||||||
"isDesktopOnly": false
|
|
||||||
}
|
|
||||||
141
_notes/.obsidian/plugins/dataview/styles.css
vendored
141
_notes/.obsidian/plugins/dataview/styles.css
vendored
@@ -1,141 +0,0 @@
|
|||||||
.block-language-dataview {
|
|
||||||
overflow-y: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************/
|
|
||||||
/** Table Views **/
|
|
||||||
/*****************/
|
|
||||||
|
|
||||||
/* List View Default Styling; rendered internally as a table. */
|
|
||||||
.table-view-table {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-view-table > thead > tr, .table-view-table > tbody > tr {
|
|
||||||
margin-top: 1em;
|
|
||||||
margin-bottom: 1em;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-view-table > tbody > tr:hover {
|
|
||||||
background-color: var(--table-row-background-hover);
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-view-table > thead > tr > th {
|
|
||||||
font-weight: 700;
|
|
||||||
font-size: larger;
|
|
||||||
border-top: none;
|
|
||||||
border-left: none;
|
|
||||||
border-right: none;
|
|
||||||
border-bottom: solid;
|
|
||||||
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-view-table > tbody > tr > td {
|
|
||||||
text-align: left;
|
|
||||||
border: none;
|
|
||||||
font-weight: 400;
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-view-table ul, .table-view-table ol {
|
|
||||||
margin-block-start: 0.2em !important;
|
|
||||||
margin-block-end: 0.2em !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Rendered value styling for any view. */
|
|
||||||
.dataview-result-list-root-ul {
|
|
||||||
padding: 0em !important;
|
|
||||||
margin: 0em !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dataview-result-list-ul {
|
|
||||||
margin-block-start: 0.2em !important;
|
|
||||||
margin-block-end: 0.2em !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Generic grouping styling. */
|
|
||||||
.dataview.result-group {
|
|
||||||
padding-left: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************/
|
|
||||||
/** Inline Fields **/
|
|
||||||
/*******************/
|
|
||||||
|
|
||||||
.dataview.inline-field-key {
|
|
||||||
padding-left: 8px;
|
|
||||||
padding-right: 8px;
|
|
||||||
font-family: var(--font-monospace);
|
|
||||||
background-color: var(--background-primary-alt);
|
|
||||||
color: var(--nav-item-color-selected);
|
|
||||||
}
|
|
||||||
|
|
||||||
.dataview.inline-field-value {
|
|
||||||
padding-left: 8px;
|
|
||||||
padding-right: 8px;
|
|
||||||
font-family: var(--font-monospace);
|
|
||||||
background-color: var(--background-secondary-alt);
|
|
||||||
color: var(--nav-item-color-selected);
|
|
||||||
}
|
|
||||||
|
|
||||||
.dataview.inline-field-standalone-value {
|
|
||||||
padding-left: 8px;
|
|
||||||
padding-right: 8px;
|
|
||||||
font-family: var(--font-monospace);
|
|
||||||
background-color: var(--background-secondary-alt);
|
|
||||||
color: var(--nav-item-color-selected);
|
|
||||||
}
|
|
||||||
|
|
||||||
/***************/
|
|
||||||
/** Task View **/
|
|
||||||
/***************/
|
|
||||||
|
|
||||||
.dataview.task-list-item, .dataview.task-list-basic-item {
|
|
||||||
margin-top: 3px;
|
|
||||||
margin-bottom: 3px;
|
|
||||||
transition: 0.4s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dataview.task-list-item:hover, .dataview.task-list-basic-item:hover {
|
|
||||||
background-color: var(--text-selection);
|
|
||||||
box-shadow: -40px 0 0 var(--text-selection);
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************/
|
|
||||||
/** Error Views **/
|
|
||||||
/*****************/
|
|
||||||
|
|
||||||
div.dataview-error-box {
|
|
||||||
width: 100%;
|
|
||||||
min-height: 150px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
border: 4px dashed var(--background-secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.dataview-error-message {
|
|
||||||
color: var(--text-muted);
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*************************/
|
|
||||||
/** Additional Metadata **/
|
|
||||||
/*************************/
|
|
||||||
|
|
||||||
.dataview.small-text {
|
|
||||||
font-size: smaller;
|
|
||||||
color: var(--text-muted);
|
|
||||||
margin-left: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dataview.small-text::before {
|
|
||||||
content: "(";
|
|
||||||
}
|
|
||||||
|
|
||||||
.dataview.small-text::after {
|
|
||||||
content: ")";
|
|
||||||
}
|
|
||||||
153
_notes/.obsidian/plugins/obsidian-kanban/main.js
vendored
153
_notes/.obsidian/plugins/obsidian-kanban/main.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "obsidian-kanban",
|
|
||||||
"name": "Kanban",
|
|
||||||
"version": "2.0.51",
|
|
||||||
"minAppVersion": "1.0.0",
|
|
||||||
"description": "Create markdown-backed Kanban boards in Obsidian.",
|
|
||||||
"author": "mgmeyers",
|
|
||||||
"authorUrl": "https://github.com/mgmeyers/obsidian-kanban",
|
|
||||||
"helpUrl": "https://publish.obsidian.md/kanban/Obsidian+Kanban+Plugin",
|
|
||||||
"isDesktopOnly": false
|
|
||||||
}
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "obsidian-tasks-plugin",
|
|
||||||
"name": "Tasks",
|
|
||||||
"version": "7.23.1",
|
|
||||||
"minAppVersion": "1.4.0",
|
|
||||||
"description": "Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.",
|
|
||||||
"helpUrl": "https://publish.obsidian.md/tasks/",
|
|
||||||
"author": "Clare Macrae and Ilyas Landikov (created by Martin Schenck)",
|
|
||||||
"authorUrl": "https://github.com/obsidian-tasks-group",
|
|
||||||
"fundingUrl": "https://github.com/sponsors/claremacrae",
|
|
||||||
"isDesktopOnly": false
|
|
||||||
}
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "templater-obsidian",
|
|
||||||
"name": "Templater",
|
|
||||||
"version": "2.18.1",
|
|
||||||
"description": "Create and use templates",
|
|
||||||
"minAppVersion": "1.5.0",
|
|
||||||
"author": "SilentVoid",
|
|
||||||
"authorUrl": "https://github.com/SilentVoid13",
|
|
||||||
"helpUrl": "https://silentvoid13.github.io/Templater/",
|
|
||||||
"isDesktopOnly": false
|
|
||||||
}
|
|
||||||
@@ -1,226 +0,0 @@
|
|||||||
.templater_search {
|
|
||||||
width: calc(100% - 20px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.templater_div {
|
|
||||||
border-top: 1px solid var(--background-modifier-border);
|
|
||||||
}
|
|
||||||
|
|
||||||
.templater_div > .setting-item {
|
|
||||||
border-top: none !important;
|
|
||||||
align-self: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.templater_div > .setting-item > .setting-item-control {
|
|
||||||
justify-content: space-around;
|
|
||||||
padding: 0;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.templater_div
|
|
||||||
> .setting-item
|
|
||||||
> .setting-item-control
|
|
||||||
> .setting-editor-extra-setting-button {
|
|
||||||
align-self: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.templater_donating {
|
|
||||||
margin: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.templater_title {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
margin-top: 5px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.templater_template {
|
|
||||||
align-self: center;
|
|
||||||
margin-left: 5px;
|
|
||||||
margin-right: 5px;
|
|
||||||
width: 70%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.templater_cmd {
|
|
||||||
margin-left: 5px;
|
|
||||||
margin-right: 5px;
|
|
||||||
font-size: 14px;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.templater_div2 > .setting-item {
|
|
||||||
align-content: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.templater-prompt-div,
|
|
||||||
.templater-multisuggester-div {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.templater-prompt-form {
|
|
||||||
display: flex;
|
|
||||||
flex-grow: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.templater-prompt-input,
|
|
||||||
.templater-multisuggester-input {
|
|
||||||
flex-grow: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.templater-button-div {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
margin-top: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
textarea.templater-prompt-input {
|
|
||||||
height: 10rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
textarea.templater-prompt-input:focus {
|
|
||||||
border-color: var(--interactive-accent);
|
|
||||||
}
|
|
||||||
|
|
||||||
.templater-multisuggester-list {
|
|
||||||
margin: 1.5em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .templater-command-bg {
|
|
||||||
left: 0px;
|
|
||||||
right: 0px;
|
|
||||||
background-color: var(--background-primary-alt);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command {
|
|
||||||
font-size: 0.85em;
|
|
||||||
font-family: var(--font-monospace);
|
|
||||||
line-height: 1.3;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .templater-inline .cm-templater-command {
|
|
||||||
background-color: var(--background-primary-alt);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-templater-opening-tag {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-templater-closing-tag {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-templater-interpolation-tag {
|
|
||||||
color: var(--code-property, #008bff);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-templater-execution-tag {
|
|
||||||
color: var(--code-function, #c0d700);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-keyword {
|
|
||||||
color: var(--code-keyword, #00a7aa);
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-atom {
|
|
||||||
color: var(--code-normal, #f39b35);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-value,
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-number,
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-type {
|
|
||||||
color: var(--code-value, #a06fca);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-def,
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-type.cm-def {
|
|
||||||
color: var(--code-normal, var(--text-normal));
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-property,
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-property.cm-def,
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-attribute {
|
|
||||||
color: var(--code-function, #98e342);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-variable,
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-variable-2,
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-variable-3,
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-meta {
|
|
||||||
color: var(--code-property, #d4d4d4);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-callee,
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-operator,
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-qualifier,
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-builtin {
|
|
||||||
color: var(--code-operator, #fc4384);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-tag {
|
|
||||||
color: var(--code-tag, #fc4384);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-comment,
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-comment.cm-tag,
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-comment.cm-attribute {
|
|
||||||
color: var(--code-comment, #696d70);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-string,
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-string-2 {
|
|
||||||
color: var(--code-string, #e6db74);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-header,
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-hr {
|
|
||||||
color: var(--code-keyword, #da7dae);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-link {
|
|
||||||
color: var(--code-normal, #696d70);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-s-obsidian .cm-templater-command.cm-error {
|
|
||||||
border-bottom: 1px solid #c42412;
|
|
||||||
}
|
|
||||||
|
|
||||||
.CodeMirror-hints {
|
|
||||||
position: absolute;
|
|
||||||
z-index: 10;
|
|
||||||
overflow: hidden;
|
|
||||||
list-style: none;
|
|
||||||
|
|
||||||
margin: 0;
|
|
||||||
padding: 2px;
|
|
||||||
|
|
||||||
-webkit-box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
|
|
||||||
-moz-box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
|
|
||||||
box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
|
|
||||||
border-radius: 3px;
|
|
||||||
border: 1px solid silver;
|
|
||||||
|
|
||||||
background: white;
|
|
||||||
font-size: 90%;
|
|
||||||
font-family: monospace;
|
|
||||||
|
|
||||||
max-height: 20em;
|
|
||||||
overflow-y: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.CodeMirror-hint {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0 4px;
|
|
||||||
border-radius: 2px;
|
|
||||||
white-space: pre;
|
|
||||||
color: black;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
li.CodeMirror-hint-active {
|
|
||||||
background: #08f;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
29
_notes/.obsidian/types.json
vendored
29
_notes/.obsidian/types.json
vendored
@@ -1,29 +0,0 @@
|
|||||||
{
|
|
||||||
"types": {
|
|
||||||
"aliases": "aliases",
|
|
||||||
"cssclasses": "multitext",
|
|
||||||
"tags": "tags",
|
|
||||||
"TQ_explain": "checkbox",
|
|
||||||
"TQ_extra_instructions": "text",
|
|
||||||
"TQ_short_mode": "checkbox",
|
|
||||||
"TQ_show_backlink": "checkbox",
|
|
||||||
"TQ_show_cancelled_date": "checkbox",
|
|
||||||
"TQ_show_created_date": "checkbox",
|
|
||||||
"TQ_show_depends_on": "checkbox",
|
|
||||||
"TQ_show_done_date": "checkbox",
|
|
||||||
"TQ_show_due_date": "checkbox",
|
|
||||||
"TQ_show_edit_button": "checkbox",
|
|
||||||
"TQ_show_id": "checkbox",
|
|
||||||
"TQ_show_on_completion": "checkbox",
|
|
||||||
"TQ_show_postpone_button": "checkbox",
|
|
||||||
"TQ_show_priority": "checkbox",
|
|
||||||
"TQ_show_recurrence_rule": "checkbox",
|
|
||||||
"TQ_show_scheduled_date": "checkbox",
|
|
||||||
"TQ_show_start_date": "checkbox",
|
|
||||||
"TQ_show_tags": "checkbox",
|
|
||||||
"TQ_show_task_count": "checkbox",
|
|
||||||
"TQ_show_toolbar": "checkbox",
|
|
||||||
"TQ_show_tree": "checkbox",
|
|
||||||
"TQ_show_urgency": "checkbox"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
# Eventify — Project Dashboard
|
|
||||||
|
|
||||||
> **Eventify** is a multi-platform event discovery & management ecosystem consisting of 4 frontends, a Django backend, and Docker-based infrastructure on AWS EC2.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Ecosystem Overview
|
|
||||||
|
|
||||||
| Project | Domain / Platform | Tech Stack | Path |
|
|
||||||
|---------|-------------------|------------|------|
|
|
||||||
| **Main Web App** | `app.eventifyplus.com` | React 18 + Vite + TS + Tailwind | [[09 - Projects/App - Web Frontend]] |
|
|
||||||
| **Admin Panel** | `admin.eventifyplus.com` | React 18 + Vite + Shadcn/UI + Tailwind | [[09 - Projects/Admin - Command Center]] |
|
|
||||||
| **Partner Portal** | `partner.eventifyplus.com` | Next.js 16 + React 19 + Prisma + Tailwind | [[09 - Projects/Partner Portal]] |
|
|
||||||
| **Mobile App** | iOS / Android / Desktop | Flutter (Dart) | [[09 - Projects/Mobile - Flutter]] |
|
|
||||||
| **Backend API** | `uat.eventifyplus.com/api/` | Django (Python) | [[09 - Projects/Backend - Django]] |
|
|
||||||
| **Infrastructure** | AWS EC2 + Docker | Docker Compose, Nginx | [[10 - Infrastructure/Server & Docker]] |
|
|
||||||
| **Server Monitor** | `status.eventifyplus.com` | Node.js + Docker | [[10 - Infrastructure/Server Monitor]] |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Quick Links
|
|
||||||
|
|
||||||
| Area | Note |
|
|
||||||
|------|------|
|
|
||||||
| Architecture | [[01 - Architecture/Overview]] |
|
|
||||||
| Folder Structure | [[01 - Architecture/Folder Structure]] |
|
|
||||||
| State Management | [[01 - Architecture/State Management]] |
|
|
||||||
| Features | [[02 - Features/Auth]] · [[02 - Features/Events]] · [[02 - Features/Gamification]] · [[02 - Features/Reviews]] |
|
|
||||||
| Screens | [[03 - Screens/Screen Index]] |
|
|
||||||
| API & Backend | [[04 - API & Backend/API Notes]] |
|
|
||||||
| Tasks | [[05 - Tasks & Planning/Kanban]] · [[05 - Tasks & Planning/Backlog]] |
|
|
||||||
| Bugs | [[06 - Bugs & Issues/Bug Log]] |
|
|
||||||
| Design | [[07 - Design & UI/Design Notes]] |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Active Tasks
|
|
||||||
|
|
||||||
```dataview
|
|
||||||
TASK
|
|
||||||
FROM "_notes"
|
|
||||||
WHERE !completed
|
|
||||||
LIMIT 10
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Recent Notes
|
|
||||||
|
|
||||||
```dataview
|
|
||||||
TABLE file.mtime AS "Last Modified"
|
|
||||||
FROM "_notes"
|
|
||||||
SORT file.mtime DESC
|
|
||||||
LIMIT 8
|
|
||||||
```
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
# Folder Structure
|
|
||||||
|
|
||||||
## Source Code (`lib/`)
|
|
||||||
|
|
||||||
```
|
|
||||||
lib/
|
|
||||||
├── core/
|
|
||||||
│ ├── analytics/ # Analytics integration
|
|
||||||
│ ├── api/ # API client & interceptors
|
|
||||||
│ ├── auth/ # Authentication logic
|
|
||||||
│ ├── storage/ # Local storage implementations
|
|
||||||
│ ├── utils/ # Utility functions
|
|
||||||
│ ├── constants.dart # App-wide constants
|
|
||||||
│ └── theme_manager.dart # Dark/Light mode state
|
|
||||||
│
|
|
||||||
├── features/
|
|
||||||
│ ├── auth/ # Login, registration, session
|
|
||||||
│ ├── events/ # Event listing, detail, creation
|
|
||||||
│ ├── gamification/ # EP, RP, leaderboard, achievements
|
|
||||||
│ └── reviews/ # Review system
|
|
||||||
│
|
|
||||||
├── screens/
|
|
||||||
│ ├── home_screen.dart
|
|
||||||
│ ├── home_desktop_screen.dart
|
|
||||||
│ ├── login_screen.dart
|
|
||||||
│ ├── desktop_login_screen.dart
|
|
||||||
│ ├── booking_screen.dart
|
|
||||||
│ ├── calendar_screen.dart
|
|
||||||
│ ├── profile_screen.dart
|
|
||||||
│ ├── search_screen.dart
|
|
||||||
│ ├── responsive_layout.dart
|
|
||||||
│ └── ...
|
|
||||||
│
|
|
||||||
├── widgets/ # Reusable UI components
|
|
||||||
└── main.dart # Entry point
|
|
||||||
```
|
|
||||||
|
|
||||||
## Platform Folders
|
|
||||||
| Folder | Purpose |
|
|
||||||
|--------|---------|
|
|
||||||
| `android/` | Android native code |
|
|
||||||
| `ios/` | iOS native code |
|
|
||||||
| `web/` | Web entrypoint |
|
|
||||||
| `macos/` | macOS native |
|
|
||||||
| `windows/` | Windows native |
|
|
||||||
| `linux/` | Linux native |
|
|
||||||
|
|
||||||
## Assets
|
|
||||||
```
|
|
||||||
assets/
|
|
||||||
├── images/
|
|
||||||
├── fonts/
|
|
||||||
└── videos/
|
|
||||||
```
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
# Architecture Overview
|
|
||||||
|
|
||||||
## Eventify Ecosystem
|
|
||||||
|
|
||||||
Eventify is a multi-project event management platform with **4 frontends**, a **Django backend**, and **Docker-based infrastructure** on AWS EC2.
|
|
||||||
|
|
||||||
```
|
|
||||||
┌─────────────────────────────────────────────────────┐
|
|
||||||
│ Users / Partners │
|
|
||||||
├──────────┬──────────┬───────────┬───────────────────┤
|
|
||||||
│ app.* │ admin.* │ partner.* │ Mobile App │
|
|
||||||
│ React │ React │ Next.js │ Flutter │
|
|
||||||
│ Vite+TS │ Shadcn │ Prisma │ iOS/Android/Web │
|
|
||||||
├──────────┴──────────┴───────────┴───────────────────┤
|
|
||||||
│ Django REST API (Python) │
|
|
||||||
│ uat.eventifyplus.com / prod.eventifyplus.com │
|
|
||||||
├─────────────────────────────────────────────────────┤
|
|
||||||
│ AWS EC2 · Docker · eventify-net │
|
|
||||||
│ Database · Server Monitor │
|
|
||||||
└─────────────────────────────────────────────────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
## Projects at a Glance
|
|
||||||
|
|
||||||
| Project | Domain | Stack | Local Path |
|
|
||||||
|---------|--------|-------|------------|
|
|
||||||
| Web App | `app.eventifyplus.com` | React 18 + Vite + TS + Tailwind | `mvnew.eventifyplus.com new/` |
|
|
||||||
| Admin | `admin.eventifyplus.com` | React 18 + Vite + Shadcn/UI | `eventify-command-center/` |
|
|
||||||
| Partner | `partner.eventifyplus.com` | Next.js 16 + Prisma + Tailwind | `eventify-partner/` |
|
|
||||||
| Mobile | iOS / Android / Desktop | Flutter + Dart + Provider | `Eventify-frontend/` |
|
|
||||||
| Backend | `uat.eventifyplus.com/api/` | Django 4.2+ (Python) | `eventify_backend/` |
|
|
||||||
| Monitor | `status.eventifyplus.com` | Node.js + Docker | `eventify-server-monitor/` |
|
|
||||||
|
|
||||||
All local projects live under `/Users/bshtechnologies/Documents/`.
|
|
||||||
|
|
||||||
## Backend Modules
|
|
||||||
|
|
||||||
| Module | Purpose |
|
|
||||||
|--------|---------|
|
|
||||||
| `accounts` | Users & auth |
|
|
||||||
| `events` | Event CRUD, types, images |
|
|
||||||
| `bookings` | Reservations |
|
|
||||||
| `reviews` | User reviews |
|
|
||||||
| `ledger` | Financial ledger |
|
|
||||||
| `banking_operations` | Payments |
|
|
||||||
| `gamification` | EP, RP, achievements, leaderboard |
|
|
||||||
| `eventify_logger` | Logging |
|
|
||||||
|
|
||||||
## Flutter App Architecture (Mobile)
|
|
||||||
|
|
||||||
Feature-first modular structure:
|
|
||||||
```
|
|
||||||
lib/
|
|
||||||
├── core/ # API, auth, storage, utils, constants, theme
|
|
||||||
├── features/ # auth, events, gamification, reviews
|
|
||||||
├── screens/ # Mobile + desktop screen variants
|
|
||||||
└── widgets/ # Reusable UI components
|
|
||||||
```
|
|
||||||
|
|
||||||
State Management: Provider (`^6.1.2`) — see [[State Management]]
|
|
||||||
|
|
||||||
## Detailed Notes
|
|
||||||
|
|
||||||
- **Per-project details:** [[09 - Projects/App - Web Frontend]] · [[09 - Projects/Admin - Command Center]] · [[09 - Projects/Partner Portal]] · [[09 - Projects/Mobile - Flutter]] · [[09 - Projects/Backend - Django]]
|
|
||||||
- **Infrastructure:** [[10 - Infrastructure/Server & Docker]] · [[10 - Infrastructure/Server Monitor]]
|
|
||||||
- **Flutter specifics:** [[Folder Structure]] · [[State Management]]
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
# State Management
|
|
||||||
|
|
||||||
## Approach
|
|
||||||
Eventify uses **Provider** (`^6.1.2`) for state management.
|
|
||||||
|
|
||||||
## Pattern
|
|
||||||
- `ChangeNotifier` classes hold state
|
|
||||||
- `ChangeNotifierProvider` exposes state to the widget tree
|
|
||||||
- `Consumer<T>` / `context.watch<T>()` rebuilds UI on state change
|
|
||||||
- `context.read<T>()` for one-off reads without subscribing
|
|
||||||
|
|
||||||
## Key Providers
|
|
||||||
> Fill in as you identify providers in `lib/core/` and `lib/features/`
|
|
||||||
|
|
||||||
| Provider | Location | Responsibility |
|
|
||||||
|----------|----------|----------------|
|
|
||||||
| AuthProvider | `lib/core/auth/` | Session, login/logout |
|
|
||||||
| ThemeManager | `lib/core/theme_manager.dart` | Dark/Light mode toggle |
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
- Desktop and mobile screens share the same providers via `responsive_layout.dart`
|
|
||||||
- Local persistence uses `shared_preferences` (not Provider)
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
# Feature: Auth
|
|
||||||
|
|
||||||
**Module path:** `lib/features/auth/` + `lib/core/auth/`
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
Handles user login, registration, and session management.
|
|
||||||
|
|
||||||
## Screens
|
|
||||||
- `login_screen.dart` — Mobile login
|
|
||||||
- `desktop_login_screen.dart` — Desktop login
|
|
||||||
|
|
||||||
## Key Files
|
|
||||||
| File | Purpose |
|
|
||||||
|------|---------|
|
|
||||||
| `lib/core/auth/` | Auth logic, tokens, session |
|
|
||||||
| `lib/features/auth/` | Auth feature UI & state |
|
|
||||||
|
|
||||||
## Flow
|
|
||||||
- [ ] Document login flow
|
|
||||||
- [ ] Document registration flow
|
|
||||||
- [ ] Document session persistence (shared_preferences?)
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
> Add notes about OAuth, JWT, or custom auth as you discover them
|
|
||||||
|
|
||||||
## Related
|
|
||||||
- [[01 - Architecture/State Management]]
|
|
||||||
- [[04 - API & Backend/API Notes]]
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
# Feature: Events
|
|
||||||
|
|
||||||
**Module path:** `lib/features/events/`
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
Core feature — event discovery, listing, detail view, booking, and calendar integration.
|
|
||||||
|
|
||||||
## Related Screens
|
|
||||||
- `home_screen.dart` / `home_desktop_screen.dart` — Event feed
|
|
||||||
- `booking_screen.dart` — Event booking flow
|
|
||||||
- `calendar_screen.dart` — Calendar view of events
|
|
||||||
- `search_screen.dart` — Event search
|
|
||||||
|
|
||||||
## Key Capabilities
|
|
||||||
- [ ] Event listing & filtering
|
|
||||||
- [ ] Event detail view
|
|
||||||
- [ ] Booking flow
|
|
||||||
- [ ] Calendar integration (`table_calendar`)
|
|
||||||
- [ ] Location/map view (`google_maps_flutter`, `geolocator`)
|
|
||||||
- [ ] Media (images/video via `image_picker`, `video_player`)
|
|
||||||
|
|
||||||
## API Endpoints
|
|
||||||
> Document event API endpoints here as you discover them
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
## Related
|
|
||||||
- [[02 - Features/Reviews]]
|
|
||||||
- [[03 - Screens/Screen Index]]
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
# Feature: Gamification
|
|
||||||
|
|
||||||
**Module path:** `lib/features/gamification/`
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
Engagement system using points, rankings, and achievements to reward users.
|
|
||||||
|
|
||||||
## Components
|
|
||||||
- **EP (Experience Points)** — earned by attending/booking events
|
|
||||||
- **RP (Reward Points)** — redeemable rewards currency
|
|
||||||
- **Leaderboard** — ranked user standings
|
|
||||||
- **Achievements** — milestone badges/unlocks
|
|
||||||
|
|
||||||
## Key Files
|
|
||||||
| File | Purpose |
|
|
||||||
|------|---------|
|
|
||||||
| `lib/features/gamification/` | All gamification logic & UI |
|
|
||||||
|
|
||||||
## Game Mechanics
|
|
||||||
- [ ] Document EP earning rules
|
|
||||||
- [ ] Document RP earning rules
|
|
||||||
- [ ] Document achievement triggers
|
|
||||||
- [ ] Document leaderboard ranking logic
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
## Related
|
|
||||||
- [[02 - Features/Events]]
|
|
||||||
- [[04 - API & Backend/API Notes]]
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
# Feature: Reviews
|
|
||||||
|
|
||||||
**Module path:** `lib/features/reviews/`
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
Allows users to leave and read reviews for events they have attended.
|
|
||||||
|
|
||||||
## Key Files
|
|
||||||
| File | Purpose |
|
|
||||||
|------|---------|
|
|
||||||
| `lib/features/reviews/` | Review UI & logic |
|
|
||||||
|
|
||||||
## Flow
|
|
||||||
- [ ] Document review submission flow
|
|
||||||
- [ ] Document review display (event detail page?)
|
|
||||||
- [ ] Document rating system (stars, score?)
|
|
||||||
|
|
||||||
## API Endpoints
|
|
||||||
> Document review API endpoints here
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
## Related
|
|
||||||
- [[02 - Features/Events]]
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
# Screen Index
|
|
||||||
|
|
||||||
## Mobile Screens
|
|
||||||
| Screen | File | Description |
|
|
||||||
|--------|------|-------------|
|
|
||||||
| Home | `lib/screens/home_screen.dart` | Main event feed |
|
|
||||||
| Login | `lib/screens/login_screen.dart` | User login |
|
|
||||||
| Booking | `lib/screens/booking_screen.dart` | Event booking flow |
|
|
||||||
| Calendar | `lib/screens/calendar_screen.dart` | Calendar view |
|
|
||||||
| Profile | `lib/screens/profile_screen.dart` | User profile & settings |
|
|
||||||
| Search | `lib/screens/search_screen.dart` | Event search |
|
|
||||||
|
|
||||||
## Desktop Screens
|
|
||||||
| Screen | File | Description |
|
|
||||||
|--------|------|-------------|
|
|
||||||
| Home (Desktop) | `lib/screens/home_desktop_screen.dart` | Desktop dashboard |
|
|
||||||
| Login (Desktop) | `lib/screens/desktop_login_screen.dart` | Desktop login |
|
|
||||||
|
|
||||||
## Layout
|
|
||||||
| File | Purpose |
|
|
||||||
|------|---------|
|
|
||||||
| `lib/screens/responsive_layout.dart` | Switches between mobile/desktop layouts |
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
- Responsive layout builder detects screen width and renders the appropriate variant
|
|
||||||
- Both mobile and desktop screens consume the same Providers
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
# API & Backend Notes
|
|
||||||
|
|
||||||
**API client location:** `lib/core/api/`
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
> Document the backend API base URL, auth method, and overall structure here.
|
|
||||||
|
|
||||||
## Authentication
|
|
||||||
> e.g. Bearer token, JWT, OAuth2 — add details as you discover them
|
|
||||||
|
|
||||||
## Endpoints
|
|
||||||
|
|
||||||
### Auth
|
|
||||||
| Method | Endpoint | Description |
|
|
||||||
|--------|----------|-------------|
|
|
||||||
| POST | `/auth/login` | User login |
|
|
||||||
| POST | `/auth/register` | User registration |
|
|
||||||
| POST | `/auth/logout` | Logout |
|
|
||||||
|
|
||||||
### Events
|
|
||||||
| Method | Endpoint | Description |
|
|
||||||
|--------|----------|-------------|
|
|
||||||
| GET | `/events` | List events |
|
|
||||||
| GET | `/events/:id` | Event detail |
|
|
||||||
| POST | `/events/:id/book` | Book event |
|
|
||||||
|
|
||||||
### Reviews
|
|
||||||
| Method | Endpoint | Description |
|
|
||||||
|--------|----------|-------------|
|
|
||||||
| GET | `/events/:id/reviews` | Get reviews |
|
|
||||||
| POST | `/events/:id/reviews` | Submit review |
|
|
||||||
|
|
||||||
### Gamification
|
|
||||||
| Method | Endpoint | Description |
|
|
||||||
|--------|----------|-------------|
|
|
||||||
| GET | `/leaderboard` | Get leaderboard |
|
|
||||||
| GET | `/users/:id/achievements` | User achievements |
|
|
||||||
|
|
||||||
> Update endpoints above as you explore `lib/core/api/`
|
|
||||||
|
|
||||||
## Error Handling
|
|
||||||
> Document API error codes and how interceptors handle them
|
|
||||||
|
|
||||||
## Related
|
|
||||||
- [[02 - Features/Auth]]
|
|
||||||
- [[02 - Features/Events]]
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
# Backlog
|
|
||||||
|
|
||||||
> Use this for longer-form feature/task descriptions. Move short tasks to [[Kanban]].
|
|
||||||
|
|
||||||
## Features to Build / Improve
|
|
||||||
- [ ]
|
|
||||||
|
|
||||||
## Documentation to Write
|
|
||||||
- [ ] API endpoint reference
|
|
||||||
- [ ] Onboarding guide for new contributors
|
|
||||||
|
|
||||||
## Bugs to Fix
|
|
||||||
> See [[06 - Bugs & Issues/Bug Log]]
|
|
||||||
|
|
||||||
## Ideas
|
|
||||||
- [ ]
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
---
|
|
||||||
kanban-plugin: board
|
|
||||||
---
|
|
||||||
|
|
||||||
## Backlog
|
|
||||||
|
|
||||||
- [ ] Document API endpoints in [[04 - API & Backend/API Notes]]
|
|
||||||
- [ ] Map all Provider classes in [[01 - Architecture/State Management]]
|
|
||||||
- [ ] Complete auth flow documentation in [[02 - Features/Auth]]
|
|
||||||
- [ ] Document gamification EP/RP rules in [[02 - Features/Gamification]]
|
|
||||||
- [ ] Document partner onboarding flow in [[09 - Projects/Partner Portal]]
|
|
||||||
- [ ] Document admin dashboard views in [[09 - Projects/Admin - Command Center]]
|
|
||||||
- [ ] Map Nginx reverse proxy config in [[10 - Infrastructure/Server & Docker]]
|
|
||||||
- [ ] Document database schema & connection details
|
|
||||||
- [ ] Document CI/CD deployment pipeline
|
|
||||||
|
|
||||||
## In Progress
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Review
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Done
|
|
||||||
|
|
||||||
- [x] Set up Obsidian vault for Eventify ecosystem
|
|
||||||
- [x] Phase 3 (P3-A/K): AUTH-003, AUTH-005, AUTH-006, PROF-001, PROF-002, PROF-004 — Eventify ID badge, DiceBear TierAvatarRing, photo upload to server, district picker with 14 Kerala districts, 183-day cooldown lock
|
|
||||||
- [x] Phase 4 COMPLETE (2026-04-04): HOME-007 server-side event search, REV-001 DiceBear review avatars, REV-003 stagger animations, REV-004 spring success animation, UX-002 BouncingLoader widget, UX-005 Hero/Fade/AnimatedList animations — Flutter app reaches full feature parity with Consumer Web App v1.4.9
|
|
||||||
|
|
||||||
@@ -1,91 +0,0 @@
|
|||||||
# Phase 2–4 Handoff — Context for New Session
|
|
||||||
|
|
||||||
## Status
|
|
||||||
- **Phase 1:** COMPLETE — commit `29e326b`, pushed to `https://code.bshtech.net/Sicherhaven/Eventify-frontend`
|
|
||||||
- **Phase 2:** 17 effective gaps (19 listed, 2 done in Phase 1)
|
|
||||||
- **Phase 3:** 26 effective gaps (28 listed, 2 done in Phase 1)
|
|
||||||
- **Phase 4:** 7 gaps
|
|
||||||
|
|
||||||
**Full plan:** `/Users/bshtechnologies/.claude/plans/witty-kindling-lightning.md`
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Already Done in Phase 1 (skip these)
|
|
||||||
| ID | Feature |
|
|
||||||
|----|---------|
|
|
||||||
| NOTIF-002 | Notification panel (DraggableScrollableSheet built) |
|
|
||||||
| NOTIF-003 | Notification types (4 colors in notification_tile.dart) |
|
|
||||||
| NOTIF-004 | Mark all read + individual read state |
|
|
||||||
| LDR-004 | SQL RANK tie handling (auto-fixed by real API) |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Phase 2 Task Summary (17 gaps, all High priority)
|
|
||||||
|
|
||||||
| Task | Gap IDs | Files | Backend? |
|
|
||||||
|------|---------|-------|----------|
|
|
||||||
| P2-A Home UX | HOME-001/002/003 | `home_screen.dart` | No |
|
|
||||||
| P2-B Auth | AUTH-004, AUTH-002 | `login_screen.dart`, `auth_service.dart` | AUTH-002 yes |
|
|
||||||
| P2-C Location | LOC-001, LOC-002 | `events_service.dart` | Yes (haversine) |
|
|
||||||
| P2-D Gamification UI | GAM-002, GAM-005, LDR-002 | `contribute_screen.dart`, `profile_screen.dart` | No |
|
|
||||||
| P2-E Contributor | CTR-001, CTR-002 | `contribute_screen.dart` | No |
|
|
||||||
| P2-F Achievements | ACH-001 | `gamification_service.dart` | No |
|
|
||||||
| P2-G Profile Cards | PROF-003 | `profile_screen.dart` | No |
|
|
||||||
| P2-H Skeleton Loading | UX-001 | all screens | No (add shimmer pkg) |
|
|
||||||
| P2-I Booking Bar | EVT-003, BOOK-004 | `learn_more_screen.dart` | No |
|
|
||||||
|
|
||||||
**New package needed:** `shimmer: ^3.0.0`
|
|
||||||
|
|
||||||
**Parallelizable:** All except AUTH-002 Flutter (depends on AUTH-002 Django).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Phase 3 Task Summary (26 gaps, all Medium priority)
|
|
||||||
|
|
||||||
| Task | Gap IDs | New Files |
|
|
||||||
|------|---------|-----------|
|
|
||||||
| P3-A Auth profile | AUTH-003/005/006 | — |
|
|
||||||
| P3-B Home | HOME-004/006 | — |
|
|
||||||
| P3-C Event detail | EVT-001/002 | — |
|
|
||||||
| P3-D Pincodes DB | LOC-003 | `assets/data/kerala_pincodes.json` |
|
|
||||||
| P3-E Promo code | BOOK-003 | — |
|
|
||||||
| P3-F Gamification | GAM-003/004/006 | `lib/widgets/tier_avatar_ring.dart` |
|
|
||||||
| P3-G Leaderboard card | LDR-003 | — |
|
|
||||||
| P3-H Contributor profile | CTR-004/005 | `lib/screens/contributor_profile_screen.dart` |
|
|
||||||
| P3-I Achievements | ACH-002/003 | — |
|
|
||||||
| P3-J Reviews ring | REV-002 | — |
|
|
||||||
| P3-K Profile | PROF-001/002/004 | — |
|
|
||||||
| P3-L Share card | SHARE-001/002 | `lib/features/share/share_rank_card.dart` |
|
|
||||||
| P3-M UX system | UX-003/004/006 | `glass_card.dart`, `eventify_bottom_sheet.dart` |
|
|
||||||
|
|
||||||
**New packages:** `share_plus: ^7.0.0`
|
|
||||||
**New backend:** `POST /bookings/apply-promo/`, `PATCH /api/user/update-profile/` multipart
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Phase 4 Task Summary (7 gaps, all Low priority)
|
|
||||||
|
|
||||||
| Task | Gap IDs | Detail |
|
|
||||||
|------|---------|--------|
|
|
||||||
| P4-A Search + Share | HOME-007, CTR-003 | Event title search, share status |
|
|
||||||
| P4-B Reviews | REV-001/003/004 | DiceBear avatars, stagger anim, spring success |
|
|
||||||
| P4-C Animation polish | UX-002/005 | Bouncing loader, Hero/Slide/Fade transitions |
|
|
||||||
|
|
||||||
**New package:** `flutter_staggered_animations: ^1.1.1`
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Architecture Reminder
|
|
||||||
- **Gamification + Reviews** → Node.js `app.eventifyplus.com/api/v1/` → `_nodeBase`
|
|
||||||
- **Everything else** → Django `em.eventifyplus.com/api` → `baseUrl`
|
|
||||||
- Key file: `lib/core/api/api_endpoints.dart`
|
|
||||||
- State: Provider → register in `lib/main.dart` MultiProvider
|
|
||||||
- Pattern: copy from `lib/features/events/services/events_service.dart`
|
|
||||||
|
|
||||||
## How to Start in New Session
|
|
||||||
1. Open `Eventify-frontend` in Claude Code
|
|
||||||
2. Run `/eventify`
|
|
||||||
3. Say: **"Start Phase 2. Read _notes/05 - Tasks & Planning/Phase2_Handoff.md and the plan at /Users/bshtechnologies/.claude/plans/witty-kindling-lightning.md"**
|
|
||||||
|
|
||||||
## Gap Analysis CSV (full 61 gaps)
|
|
||||||
`/Users/bshtechnologies/Documents/Eventify-frontend/_notes/feature_gap_analysis.csv`
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
# Bug Log
|
|
||||||
|
|
||||||
```dataview
|
|
||||||
TABLE status, platform, date AS "Reported"
|
|
||||||
FROM "_notes/06 - Bugs & Issues"
|
|
||||||
WHERE file.name != "Bug Log"
|
|
||||||
SORT date DESC
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## How to Log a Bug
|
|
||||||
|
|
||||||
Create a new note in this folder using the template below:
|
|
||||||
|
|
||||||
```
|
|
||||||
---
|
|
||||||
status: open
|
|
||||||
platform: iOS / Android / Web / Desktop
|
|
||||||
date: YYYY-MM-DD
|
|
||||||
---
|
|
||||||
|
|
||||||
## Description
|
|
||||||
|
|
||||||
## Steps to Reproduce
|
|
||||||
1.
|
|
||||||
2.
|
|
||||||
|
|
||||||
## Expected Behaviour
|
|
||||||
|
|
||||||
## Actual Behaviour
|
|
||||||
|
|
||||||
## Fix
|
|
||||||
```
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
# Design & UI Notes
|
|
||||||
|
|
||||||
## Theme
|
|
||||||
- Dark/Light mode supported via `ThemeManager` (`lib/core/theme_manager.dart`)
|
|
||||||
- SVG assets rendered via `flutter_svg`
|
|
||||||
|
|
||||||
## Responsive Layout
|
|
||||||
- `responsive_layout.dart` switches between mobile and desktop layouts
|
|
||||||
- Breakpoints: > document exact breakpoint values
|
|
||||||
|
|
||||||
## Color Palette
|
|
||||||
> Add primary, secondary, background, accent colors here
|
|
||||||
|
|
||||||
## Typography
|
|
||||||
> Document font families and text styles used
|
|
||||||
|
|
||||||
## Component Library
|
|
||||||
> Notable reusable widgets in `lib/widgets/`
|
|
||||||
|
|
||||||
| Widget | File | Purpose |
|
|
||||||
|--------|------|---------|
|
|
||||||
| | | |
|
|
||||||
|
|
||||||
## Assets
|
|
||||||
- Images: `assets/images/`
|
|
||||||
- Fonts: `assets/fonts/`
|
|
||||||
- Videos: `assets/videos/` (large files, git-ignored)
|
|
||||||
- SVGs: used inline via `flutter_svg`
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
# Meeting Template
|
|
||||||
|
|
||||||
> Copy this file when creating a new meeting note. Rename it to the date + topic, e.g. `2026-03-31 Sprint Planning.md`
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Date:** YYYY-MM-DD
|
|
||||||
**Attendees:**
|
|
||||||
**Topic:**
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Agenda
|
|
||||||
1.
|
|
||||||
2.
|
|
||||||
|
|
||||||
## Discussion Notes
|
|
||||||
|
|
||||||
## Decisions Made
|
|
||||||
- [ ]
|
|
||||||
|
|
||||||
## Action Items
|
|
||||||
- [ ] (Owner) Task description — due YYYY-MM-DD
|
|
||||||
|
|
||||||
## Next Meeting
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
# Admin — Command Center (admin.eventifyplus.com)
|
|
||||||
|
|
||||||
**Domain:** `admin.eventifyplus.com`
|
|
||||||
**Local Path:** `/Users/bshtechnologies/Documents/eventify-command-center/`
|
|
||||||
**Deployment:** TBD
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Tech Stack
|
|
||||||
|
|
||||||
| Layer | Technology |
|
|
||||||
|-------|-----------|
|
|
||||||
| Framework | React 18.2 + Vite 5.1 |
|
|
||||||
| Language | TypeScript |
|
|
||||||
| Styling | Tailwind CSS 4 |
|
|
||||||
| UI Library | Shadcn/UI |
|
|
||||||
| Design System | Neobrutalism Lite |
|
|
||||||
| Data Fetching | Tanstack Query |
|
|
||||||
| Tables | Tanstack Table |
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
- **User Management (CRM)** — manage all platform users
|
|
||||||
- **Event Moderation** — approve/reject/edit events
|
|
||||||
- **Review Management** — moderate user reviews
|
|
||||||
- **Real-time Analytics** — platform metrics dashboard
|
|
||||||
- **Platform Monitoring** — system health overview
|
|
||||||
|
|
||||||
## Key Screens
|
|
||||||
- [ ] Document admin dashboard layout
|
|
||||||
- [ ] Document user management views
|
|
||||||
- [ ] Document event moderation workflow
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
## Related
|
|
||||||
- [[Backend - Django]]
|
|
||||||
- [[App - Web Frontend]]
|
|
||||||
- [[10 - Infrastructure/Server & Docker]]
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
# App — Web Frontend (app.eventifyplus.com)
|
|
||||||
|
|
||||||
**Domain:** `app.eventifyplus.com` (currently `mvnew.eventifyplus.com`)
|
|
||||||
**Local Path:** `/Users/bshtechnologies/Documents/mvnew.eventifyplus.com new/`
|
|
||||||
**Deployment:** Vercel
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Tech Stack
|
|
||||||
|
|
||||||
| Layer | Technology |
|
|
||||||
|-------|-----------|
|
|
||||||
| Framework | React 18.2 + Vite 5.1 |
|
|
||||||
| Language | TypeScript |
|
|
||||||
| Styling | Tailwind CSS 3.4 |
|
|
||||||
| Animation | Framer Motion 12 |
|
|
||||||
| Deployment | Vercel (`vercel.json`) |
|
|
||||||
|
|
||||||
## Architecture
|
|
||||||
|
|
||||||
Micro-app injection pattern with separate build configs per module:
|
|
||||||
|
|
||||||
| Module | Build Command |
|
|
||||||
|--------|---------------|
|
|
||||||
| Leaderboard | `build:leaderboard` |
|
|
||||||
| Contributor | `build:contributor` |
|
|
||||||
| Achievements | `build:achievements` |
|
|
||||||
| Reviews | `build:reviews` |
|
|
||||||
|
|
||||||
## Server (embedded Express)
|
|
||||||
|
|
||||||
- Path: `server/` within the project
|
|
||||||
- Stack: Node.js / Express + PostgreSQL (`pg` driver)
|
|
||||||
- Port: 3000
|
|
||||||
- Has seed data (`server/seed.js`)
|
|
||||||
|
|
||||||
## Environment
|
|
||||||
- API: `https://uat.eventifyplus.com/api/` (UAT)
|
|
||||||
- API: `https://prod.eventifyplus.com/api` (Production)
|
|
||||||
|
|
||||||
## Key Features
|
|
||||||
- Event discovery & browsing
|
|
||||||
- Community contribution & gamification (EP, RP, leaderboard, achievements)
|
|
||||||
- User profiles & reviews
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
## Related
|
|
||||||
- [[Backend - Django]]
|
|
||||||
- [[Mobile - Flutter]]
|
|
||||||
- [[Admin - Command Center]]
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
# Backend — Django API
|
|
||||||
|
|
||||||
**API Base URL (UAT):** `https://uat.eventifyplus.com/api/`
|
|
||||||
**API Base URL (Prod):** `https://prod.eventifyplus.com/api`
|
|
||||||
**Local Path:** `/Users/bshtechnologies/Documents/eventify_backend/`
|
|
||||||
**SSH Access:** `ssh eventify` (see [[10 - Infrastructure/Server & Docker]])
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Tech Stack
|
|
||||||
|
|
||||||
| Layer | Technology |
|
|
||||||
|-------|-----------|
|
|
||||||
| Framework | Django >= 4.2 |
|
|
||||||
| Language | Python |
|
|
||||||
| Image Processing | Pillow |
|
|
||||||
| Database | Configured via env vars |
|
|
||||||
| API Docs | `API_Documentation.md` in project root |
|
|
||||||
|
|
||||||
## Django Apps / Modules
|
|
||||||
|
|
||||||
| Module | Purpose |
|
|
||||||
|--------|---------|
|
|
||||||
| `accounts` | User management, authentication |
|
|
||||||
| `events` | Event CRUD, event types, event images |
|
|
||||||
| `bookings` | Event booking system |
|
|
||||||
| `reviews` | User reviews for events |
|
|
||||||
| `ledger` | Financial / points ledger |
|
|
||||||
| `banking_operations` | Payment & banking |
|
|
||||||
| `eventify_logger` | Logging infrastructure |
|
|
||||||
| `gamification` | EP, RP, achievements, leaderboard |
|
|
||||||
|
|
||||||
## Models (Key)
|
|
||||||
- **Custom User** — extended Django user model
|
|
||||||
- **Event** — core event entity
|
|
||||||
- **EventType** — event categories
|
|
||||||
- **EventImages** — media for events
|
|
||||||
- **Booking** — event reservations
|
|
||||||
|
|
||||||
## Environment Variables
|
|
||||||
```
|
|
||||||
DJANGO_SECRET_KEY=replace-me
|
|
||||||
DJANGO_DEBUG=False
|
|
||||||
DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1
|
|
||||||
```
|
|
||||||
|
|
||||||
## Accessing the Server
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ssh eventify
|
|
||||||
# connects to: ubuntu@ec2-174-129-72-160.compute-1.amazonaws.com
|
|
||||||
# key: ~/.ssh/eventify_keys_21_03_2026.pem
|
|
||||||
```
|
|
||||||
|
|
||||||
## API Documentation
|
|
||||||
Full endpoint reference: `eventify_backend/API_Documentation.md`
|
|
||||||
|
|
||||||
See also: [[04 - API & Backend/API Notes]]
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
## Related
|
|
||||||
- [[App - Web Frontend]]
|
|
||||||
- [[Admin - Command Center]]
|
|
||||||
- [[Partner Portal]]
|
|
||||||
- [[Mobile - Flutter]]
|
|
||||||
- [[10 - Infrastructure/Server & Docker]]
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
# Mobile App — Flutter
|
|
||||||
|
|
||||||
**Platforms:** iOS, Android, Web, Desktop (Windows, macOS, Linux)
|
|
||||||
**Local Path:** `/Users/bshtechnologies/Documents/Eventify-frontend/`
|
|
||||||
**Version:** 1.6.1+17
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Tech Stack
|
|
||||||
|
|
||||||
| Layer | Technology |
|
|
||||||
|-------|-----------|
|
|
||||||
| Framework | Flutter |
|
|
||||||
| Language | Dart ^2.17.0 |
|
|
||||||
| State Management | Provider 6.1.2 |
|
|
||||||
| Maps | google_maps_flutter 2.5.0 |
|
|
||||||
| Calendar | table_calendar 3.2.0 |
|
|
||||||
| Location | geolocator 9.0.2 + geocoding 2.0.5 |
|
|
||||||
| Media | image_picker, video_player |
|
|
||||||
| Images | cached_network_image, flutter_svg |
|
|
||||||
| Storage | shared_preferences |
|
|
||||||
|
|
||||||
## Architecture
|
|
||||||
|
|
||||||
Feature-first modular structure:
|
|
||||||
```
|
|
||||||
lib/
|
|
||||||
├── core/ # API, auth, storage, utils, constants, theme
|
|
||||||
├── features/ # auth, events, gamification, reviews
|
|
||||||
├── screens/ # Mobile + desktop screen variants
|
|
||||||
└── widgets/ # Reusable components
|
|
||||||
```
|
|
||||||
|
|
||||||
## Feature Modules
|
|
||||||
- **Auth** — login, registration, session ([[02 - Features/Auth]])
|
|
||||||
- **Events** — listing, detail, booking, calendar ([[02 - Features/Events]])
|
|
||||||
- **Gamification** — EP, RP, leaderboard, achievements ([[02 - Features/Gamification]])
|
|
||||||
- **Reviews** — event reviews ([[02 - Features/Reviews]])
|
|
||||||
|
|
||||||
## Responsive Design
|
|
||||||
- `responsive_layout.dart` switches between mobile and desktop layouts
|
|
||||||
- Separate screen files for mobile vs desktop (e.g. `home_screen.dart` / `home_desktop_screen.dart`)
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
## Related
|
|
||||||
- [[01 - Architecture/Overview]]
|
|
||||||
- [[03 - Screens/Screen Index]]
|
|
||||||
- [[Backend - Django]]
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
# Partner Portal (partner.eventifyplus.com)
|
|
||||||
|
|
||||||
**Domain:** `partner.eventifyplus.com`
|
|
||||||
**Local Path:** `/Users/bshtechnologies/Documents/eventify-partner/`
|
|
||||||
**Deployment:** Vercel (Next.js standard)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Tech Stack
|
|
||||||
|
|
||||||
| Layer | Technology |
|
|
||||||
|-------|-----------|
|
|
||||||
| Framework | Next.js 16.1.1 |
|
|
||||||
| Language | TypeScript |
|
|
||||||
| React | 19.2.3 |
|
|
||||||
| Styling | Tailwind CSS 4 + PostCSS |
|
|
||||||
| ORM | Prisma |
|
|
||||||
| Forms | react-hook-form + Zod validation |
|
|
||||||
| Analytics | PostHog |
|
|
||||||
| Charts | Recharts |
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
- **QR Code Scanning** — `@yudiel/react-qr-scanner` for event check-ins
|
|
||||||
- **Event Management** — partners create/manage their events
|
|
||||||
- **Reporting** — revenue & attendance analytics (Recharts)
|
|
||||||
- **Form Handling** — structured forms with react-hook-form + Zod
|
|
||||||
- **Database** — Prisma ORM integration
|
|
||||||
|
|
||||||
## Key Flows
|
|
||||||
- [ ] Document partner onboarding flow
|
|
||||||
- [ ] Document event creation by partner
|
|
||||||
- [ ] Document QR check-in flow
|
|
||||||
- [ ] Document reporting/analytics views
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
## Related
|
|
||||||
- [[Backend - Django]]
|
|
||||||
- [[Admin - Command Center]]
|
|
||||||
- [[App - Web Frontend]]
|
|
||||||
@@ -1,91 +0,0 @@
|
|||||||
# Server & Docker Infrastructure
|
|
||||||
|
|
||||||
## AWS EC2 Server
|
|
||||||
|
|
||||||
| Property | Value |
|
|
||||||
|----------|-------|
|
|
||||||
| Host alias | `eventify` |
|
|
||||||
| Hostname | `ec2-174-129-72-160.compute-1.amazonaws.com` |
|
|
||||||
| User | `ubuntu` |
|
|
||||||
| SSH Key | `~/.ssh/eventify_keys_21_03_2026.pem` |
|
|
||||||
| Port | 22 (default) |
|
|
||||||
|
|
||||||
### Quick Connect
|
|
||||||
```bash
|
|
||||||
ssh eventify
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Docker Setup
|
|
||||||
|
|
||||||
All containers run on a shared Docker network: **`eventify-net`** (external, managed separately).
|
|
||||||
|
|
||||||
### Containers
|
|
||||||
|
|
||||||
| Container | Purpose | Port | Status Page |
|
|
||||||
|-----------|---------|------|-------------|
|
|
||||||
| Django Backend | API server | Proxied via Nginx | `uat.eventifyplus.com/api/` |
|
|
||||||
| Server Monitor | Uptime & health | 3002 | `status.eventifyplus.com` |
|
|
||||||
|
|
||||||
### Docker Network
|
|
||||||
```bash
|
|
||||||
# The shared external network (create if missing)
|
|
||||||
docker network create eventify-net
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Domains & URLs
|
|
||||||
|
|
||||||
| Domain | Purpose |
|
|
||||||
|--------|---------|
|
|
||||||
| `app.eventifyplus.com` | Main web app (mvnew) |
|
|
||||||
| `admin.eventifyplus.com` | Admin command center |
|
|
||||||
| `partner.eventifyplus.com` | Partner portal |
|
|
||||||
| `uat.eventifyplus.com/api/` | Backend API (UAT) |
|
|
||||||
| `prod.eventifyplus.com/api` | Backend API (Production) |
|
|
||||||
| `status.eventifyplus.com` | Server monitoring |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Common Server Commands
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# SSH into the server
|
|
||||||
ssh eventify
|
|
||||||
|
|
||||||
# Check running containers
|
|
||||||
docker ps
|
|
||||||
|
|
||||||
# View logs for a container
|
|
||||||
docker logs <container-name> --tail 100 -f
|
|
||||||
|
|
||||||
# Restart a container
|
|
||||||
docker compose restart <service>
|
|
||||||
|
|
||||||
# Check Docker network
|
|
||||||
docker network ls
|
|
||||||
docker network inspect eventify-net
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Mail / SMTP
|
|
||||||
|
|
||||||
| Property | Value |
|
|
||||||
|----------|-------|
|
|
||||||
| Server | `mail.bshtech.net:587` |
|
|
||||||
| From | `noreply@bshtech.net` |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
- [ ] Document Nginx config and reverse proxy setup
|
|
||||||
- [ ] Document database type and connection details
|
|
||||||
- [ ] Document deployment/CI pipeline
|
|
||||||
- [ ] Map which containers run which services
|
|
||||||
|
|
||||||
## Related
|
|
||||||
- [[Backend - Django]]
|
|
||||||
- [[Server Monitor]]
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
# Server Monitor (status.eventifyplus.com)
|
|
||||||
|
|
||||||
**Domain:** `status.eventifyplus.com`
|
|
||||||
**Local Path:** `/Users/bshtechnologies/Documents/eventify-server-monitor/`
|
|
||||||
**Container:** `eventify-server-monitor`
|
|
||||||
**Port:** 3002
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Tech Stack
|
|
||||||
|
|
||||||
| Layer | Technology |
|
|
||||||
|-------|-----------|
|
|
||||||
| Runtime | Node.js 20 (Alpine) |
|
|
||||||
| Architecture | Monorepo (client + server workspaces) |
|
|
||||||
| Build | Multi-stage Docker build |
|
|
||||||
| Client | React (built and served by server) |
|
|
||||||
|
|
||||||
## Docker Setup
|
|
||||||
|
|
||||||
**Dockerfile:** Multi-stage Node.js 20-alpine build
|
|
||||||
- Stage 1: Build client + server
|
|
||||||
- Stage 2: Production image, serves on port 3002
|
|
||||||
- Entry: `npm run --workspace=server start`
|
|
||||||
|
|
||||||
**docker-compose.yml:**
|
|
||||||
```yaml
|
|
||||||
container: eventify-server-monitor
|
|
||||||
port: 3002:3002
|
|
||||||
network: eventify-net (external)
|
|
||||||
volume: /app/data (persisted)
|
|
||||||
```
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
- App URL: `https://status.eventifyplus.com`
|
|
||||||
- SMTP: `mail.bshtech.net:587` (noreply@bshtech.net)
|
|
||||||
- SSH host mapping: `host.docker.internal` as ubuntu user
|
|
||||||
|
|
||||||
## Features
|
|
||||||
- Uptime monitoring for all Eventify services
|
|
||||||
- Performance metrics
|
|
||||||
- Alert notifications via email
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
## Related
|
|
||||||
- [[Server & Docker]]
|
|
||||||
- [[09 - Projects/Backend - Django]]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{}
|
|
||||||
Reference in New Issue
Block a user