Compare commits
35 Commits
develop/mo
...
9f7624fa56
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9f7624fa56 | ||
![]() |
346992d4ec | ||
![]() |
f23a6b7d9c | ||
![]() |
ebc8a81641 | ||
![]() |
f487427b2c | ||
![]() |
cc4d035f97 | ||
![]() |
84b223ff60 | ||
![]() |
fca048074e | ||
![]() |
bc35e25616 | ||
![]() |
15f8d2e6aa | ||
![]() |
592a099f7b | ||
![]() |
4c1b30e5c6 | ||
![]() |
c765bb49a4 | ||
![]() |
9aeb58379d | ||
![]() |
6419567005 | ||
![]() |
e2076fe67b | ||
![]() |
766720e075 | ||
![]() |
19af60c410 | ||
![]() |
ed95621b2f | ||
![]() |
2258fd8fb9 | ||
![]() |
0f674badd9 | ||
![]() |
bc731ea2b8 | ||
![]() |
c11dba6297 | ||
![]() |
b9fbe4e476 | ||
![]() |
0d844eed3f | ||
![]() |
2862cddb6b | ||
![]() |
55509b483c | ||
![]() |
3f2ac2a285 | ||
![]() |
1216de4ff9 | ||
![]() |
7966d8abf5 | ||
![]() |
e975aebfcd | ||
![]() |
7f6970b183 | ||
![]() |
e83854ed2a | ||
![]() |
6961f058df | ||
![]() |
b515337acc |
19
.gitconfig
Normal file
@@ -0,0 +1,19 @@
|
||||
[user]
|
||||
email = louiscklaw@users.noreply.github.com
|
||||
name = louiscklaw
|
||||
[http]
|
||||
version = HTTP/1.1
|
||||
postBuffer = 5368709120
|
||||
[init]
|
||||
defaultBranch = master
|
||||
[core]
|
||||
autocrlf = false
|
||||
[pull]
|
||||
ff = only
|
||||
rebase = true
|
||||
[lfs]
|
||||
allowincompletepush = true
|
||||
locksverify = true
|
||||
[credential]
|
||||
autoDetectTimeout = -1
|
||||
helper = cache --timeout=2592000
|
@@ -77,12 +77,12 @@ const Chat = () => {
|
||||
const [toastMessage, setToastMessage] = useState("");
|
||||
|
||||
// Refs
|
||||
const contentRef = useRef();
|
||||
const contentRef = useRef(null);
|
||||
const swiperRefs = useRef([]);
|
||||
const textareaRef = useRef();
|
||||
const sideRef = useRef();
|
||||
const sendRef = useRef();
|
||||
const replyToAnimationRef = useRef();
|
||||
const textareaRef = useRef(null);
|
||||
const sideRef = useRef(null);
|
||||
const sendRef = useRef(null);
|
||||
const replyToAnimationRef = useRef(null);
|
||||
|
||||
const actionSheetButtons = [
|
||||
{
|
||||
@@ -104,7 +104,7 @@ const Chat = () => {
|
||||
icon: alertOutline,
|
||||
handler: () =>
|
||||
toaster(
|
||||
"I haven't implemented unsend :) Simple store update though",
|
||||
"I haven't implemented unsend :) Simple store update though"
|
||||
),
|
||||
},
|
||||
{
|
||||
@@ -165,11 +165,11 @@ const Chat = () => {
|
||||
const chatMessageID = elementID.includes("chatText")
|
||||
? parseInt(elementID.replace("chatText_", ""))
|
||||
: elementID.includes("chatTime")
|
||||
? parseInt(elementID.replace("chatTime_", ""))
|
||||
: parseInt(elementID.replace("chatBubble_", ""));
|
||||
? parseInt(elementID.replace("chatTime_", ""))
|
||||
: parseInt(elementID.replace("chatBubble_", ""));
|
||||
|
||||
const chatMessage = chat.filter(
|
||||
(message) => parseInt(message.id) === parseInt(chatMessageID),
|
||||
(message) => parseInt(message.id) === parseInt(chatMessageID)
|
||||
)[0];
|
||||
|
||||
setActionMessage(chatMessage);
|
||||
@@ -278,7 +278,7 @@ const Chat = () => {
|
||||
replyToMessage,
|
||||
replyToMessage ? replyToMessage.id : false,
|
||||
image,
|
||||
imagePath,
|
||||
imagePath
|
||||
);
|
||||
setMessage("");
|
||||
|
||||
@@ -329,7 +329,7 @@ const Chat = () => {
|
||||
fill="clear"
|
||||
onClick={() =>
|
||||
toaster(
|
||||
"As this is a UI only, video calling wouldn't work here.",
|
||||
"As this is a UI only, video calling wouldn't work here."
|
||||
)
|
||||
}
|
||||
>
|
||||
@@ -352,7 +352,7 @@ const Chat = () => {
|
||||
{chat.map((message, index) => {
|
||||
const repliedMessage = chat.filter(
|
||||
(subMessage) =>
|
||||
parseInt(subMessage.id) === parseInt(message.replyID),
|
||||
parseInt(subMessage.id) === parseInt(message.replyID)
|
||||
)[0];
|
||||
|
||||
return (
|
||||
@@ -360,7 +360,9 @@ const Chat = () => {
|
||||
ref={(ref) => (swiperRefs.current[index] = ref)}
|
||||
id={`chatBubble_${message.id}`}
|
||||
key={index}
|
||||
className={`chat-bubble ${message.sent ? "bubble-sent" : "bubble-received"}`}
|
||||
className={`chat-bubble ${
|
||||
message.sent ? "bubble-sent" : "bubble-received"
|
||||
}`}
|
||||
{...longPressEvent}
|
||||
>
|
||||
<div id={`chatText_${message.id}`}>
|
||||
|
@@ -22,7 +22,7 @@ import { useRef } from "react";
|
||||
import ContactModal from "../components/ContactModal";
|
||||
|
||||
const Chats = () => {
|
||||
const pageRef = useRef();
|
||||
const pageRef = useRef(null);
|
||||
const contacts = ContactStore.useState(getContacts);
|
||||
const latestChats = ChatStore.useState(getChats);
|
||||
|
||||
@@ -43,7 +43,7 @@ const Chats = () => {
|
||||
contacts
|
||||
.filter((c) => c.id === chat.contact_id)[0]
|
||||
.name.toLowerCase()
|
||||
.includes(searchTermLower),
|
||||
.includes(searchTermLower)
|
||||
);
|
||||
setResults(newResults);
|
||||
} else {
|
||||
|
21
01_Requirements/REQ0119/index.md
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
tags: mobile
|
||||
---
|
||||
|
||||
# REQ0119-Demo2FaExample
|
||||
|
||||
## description
|
||||
|
||||
A demonstration of two-factor authentication implementation examples
|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
{
|
||||
// To be defined
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
-
|
21
01_Requirements/REQ0120/index.md
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
tags:
|
||||
---
|
||||
|
||||
# REQ0120-PlaceholderFeature
|
||||
|
||||
## description
|
||||
|
||||
T.B.A.
|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
{
|
||||
// To be defined
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
-
|
21
01_Requirements/REQ0121/index.md
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
tags:
|
||||
---
|
||||
|
||||
# REQ0121-UserProfileFeature
|
||||
|
||||
## description
|
||||
|
||||
T.B.A.
|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
{
|
||||
// To be defined
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
-
|
21
01_Requirements/REQ0122/index.md
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
tags:
|
||||
---
|
||||
|
||||
# REQ0122-NotificationSystem
|
||||
|
||||
## description
|
||||
|
||||
T.B.A.
|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
{
|
||||
// To be defined
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
-
|
21
01_Requirements/REQ0123/index.md
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
tags:
|
||||
---
|
||||
|
||||
# REQ0123-AnalyticsDashboard
|
||||
|
||||
## description
|
||||
|
||||
T.B.A.
|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
{
|
||||
// To be defined
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
-
|
22
01_Requirements/REQ0124/index.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
tags: [placeholder-tag1, placeholder-tag2]
|
||||
---
|
||||
|
||||
# REQ0124-PlaceholderTitle
|
||||
|
||||
## description
|
||||
|
||||

|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
{
|
||||
placeholderField1: Type;
|
||||
placeholderField2: Type;
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
[[REQXXXX]]
|
22
01_Requirements/REQ0125/index.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
tags: [placeholder-tag1, placeholder-tag2]
|
||||
---
|
||||
|
||||
# REQ0125-PlaceholderTitle
|
||||
|
||||
## description
|
||||
|
||||

|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
{
|
||||
placeholderField1: Type;
|
||||
placeholderField2: Type;
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
[[REQXXXX]]
|
22
01_Requirements/REQ0126/index.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
tags: [placeholder-tag1, placeholder-tag2]
|
||||
---
|
||||
|
||||
# REQ0126-PlaceholderTitle
|
||||
|
||||
## description
|
||||
|
||||

|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
{
|
||||
placeholderField1: Type;
|
||||
placeholderField2: Type;
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
[[REQXXXX]]
|
22
01_Requirements/REQ0127/index.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
tags: [placeholder-tag1, placeholder-tag2]
|
||||
---
|
||||
|
||||
# REQ0127-PlaceholderTitle
|
||||
|
||||
## description
|
||||
|
||||

|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
{
|
||||
placeholderField1: Type;
|
||||
placeholderField2: Type;
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
[[REQXXXX]]
|
22
01_Requirements/REQ0128/index.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
tags: [placeholder-tag1, placeholder-tag2]
|
||||
---
|
||||
|
||||
# REQ0128-PlaceholderTitle
|
||||
|
||||
## description
|
||||
|
||||

|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
{
|
||||
placeholderField1: Type;
|
||||
placeholderField2: Type;
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
[[REQXXXX]]
|
22
01_Requirements/REQ0129/index.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
tags: [placeholder-tag1, placeholder-tag2]
|
||||
---
|
||||
|
||||
# REQ0129-PlaceholderTitle
|
||||
|
||||
## description
|
||||
|
||||

|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
{
|
||||
placeholderField1: Type;
|
||||
placeholderField2: Type;
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
[[REQXXXX]]
|
22
01_Requirements/REQ0130/index.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
tags: [placeholder-tag1, placeholder-tag2]
|
||||
---
|
||||
|
||||
# REQ0130-PlaceholderTitle
|
||||
|
||||
## description
|
||||
|
||||

|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
{
|
||||
placeholderField1: Type;
|
||||
placeholderField2: Type;
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
[[REQXXXX]]
|
22
01_Requirements/REQ0131/index.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
tags: requirements
|
||||
---
|
||||
|
||||
# REQ0131-DemoInstagramClone
|
||||
|
||||
## description
|
||||
|
||||
<Party Page.png>
|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table users {
|
||||
id integer
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
[[REQ0110-PartyPage]]
|
23
01_Requirements/REQ0132/index.md
Normal file
@@ -0,0 +1,23 @@
|
||||
---
|
||||
tags: requirements
|
||||
---
|
||||
|
||||
# REQ0132-DemoKanbanBoard
|
||||
|
||||
## description
|
||||
|
||||
<Kanban Board.png>
|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table tasks {
|
||||
id integer
|
||||
status string
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
[[REQ0131-DemoInstagramClone]]
|
23
01_Requirements/REQ0133/index.md
Normal file
@@ -0,0 +1,23 @@
|
||||
---
|
||||
tags: requirements
|
||||
---
|
||||
|
||||
# REQ0133-DemoList
|
||||
|
||||
## description
|
||||
|
||||
<Demo List.png>
|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table lists {
|
||||
id integer
|
||||
name string
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
[[REQ0132-DemoKanbanBoard]]
|
23
01_Requirements/REQ0134/index.md
Normal file
@@ -0,0 +1,23 @@
|
||||
---
|
||||
tags: requirements
|
||||
---
|
||||
|
||||
# REQ0134-DemoOrderingApp
|
||||
|
||||
## description
|
||||
|
||||
<Ordering App.png>
|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table orders {
|
||||
id integer
|
||||
item string
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
[]
|
24
01_Requirements/REQ0135/index.md
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
tags: requirements
|
||||
---
|
||||
|
||||
# REQ0135-DemoPinterestFloatingTabBar
|
||||
|
||||
## description
|
||||
|
||||
<Pinterest Floating Tab Bar.png>
|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table floating_tab_bars {
|
||||
id integer
|
||||
position string
|
||||
items json
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
[[REQ0134-DemoList]]
|
24
01_Requirements/REQ0136/index.md
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
tags: requirements
|
||||
---
|
||||
|
||||
# REQ0136-DemoProfileExample
|
||||
|
||||
## description
|
||||
|
||||
<Profile Example.png>
|
||||
|
||||
## schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table profiles {
|
||||
id integer
|
||||
name string
|
||||
avatar_url string
|
||||
}
|
||||
```
|
||||
|
||||
## related
|
||||
|
||||
[[REQ0135-DemoPinterestFloatingTabBar]]
|
24
01_Requirements/REQ0137/index.md
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0137-DemoPullstateTutorial
|
||||
|
||||
## Description
|
||||
|
||||

|
||||
|
||||
## Schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table pullstates {
|
||||
id integer
|
||||
state json
|
||||
timestamp datetime
|
||||
}
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [REQ0136-DemoProfileExample](#)
|
24
01_Requirements/REQ0138/index.md
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0138-DemoQrScanner
|
||||
|
||||
## Description
|
||||
|
||||

|
||||
|
||||
## Schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table qr_scanners {
|
||||
id integer
|
||||
scan_data string
|
||||
scan_time datetime
|
||||
}
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [REQ0137-DemoPullstateTutorial](#)
|
24
01_Requirements/REQ0139/index.md
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0139-DemoQuizApp
|
||||
|
||||
## Description
|
||||
|
||||

|
||||
|
||||
## Schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table quizzes {
|
||||
id integer
|
||||
questions json
|
||||
results json
|
||||
}
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [REQ0138-DemoQrScanner](#)
|
25
01_Requirements/REQ0140/index.md
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0140-DemoQuoteApp
|
||||
|
||||
## Description
|
||||
|
||||

|
||||
|
||||
## Schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table quotes {
|
||||
id integer
|
||||
content string
|
||||
author string
|
||||
category string
|
||||
}
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [REQ0139-DemoQuizApp](#)
|
25
01_Requirements/REQ0141/index.md
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0141-DemoReactAddToCart
|
||||
|
||||
## Description
|
||||
|
||||

|
||||
|
||||
## Schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table cart_items {
|
||||
id integer
|
||||
product_id integer
|
||||
quantity integer
|
||||
user_id integer
|
||||
}
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [REQ0140-DemoQuoteApp](#)
|
25
01_Requirements/REQ0142/index.md
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0142-DemoReactCalculator
|
||||
|
||||
## Description
|
||||
|
||||

|
||||
|
||||
## Schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table calculations {
|
||||
id integer
|
||||
expression string
|
||||
result float
|
||||
timestamp datetime
|
||||
}
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [REQ0141-DemoReactAddToCart](#)
|
25
01_Requirements/REQ0143/index.md
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0143-DemoReactDrawingCanvas
|
||||
|
||||
## Description
|
||||
|
||||

|
||||
|
||||
## Schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table drawings {
|
||||
id integer
|
||||
canvas_data json
|
||||
created_at datetime
|
||||
updated_at datetime
|
||||
}
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [REQ0142-DemoReactCalculator](#)
|
25
01_Requirements/REQ0144/index.md
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0144-DemoReactHookFormExample
|
||||
|
||||
## Description
|
||||
|
||||

|
||||
|
||||
## Schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table forms {
|
||||
id integer
|
||||
form_data json
|
||||
submitted_at datetime
|
||||
user_id integer
|
||||
}
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [REQ0143-DemoReactDrawingCanvas](#)
|
26
01_Requirements/REQ0145/index.md
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0145-DemoReactItemList
|
||||
|
||||
## Description
|
||||
|
||||

|
||||
|
||||
## Schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table items {
|
||||
id integer
|
||||
name string
|
||||
description text
|
||||
price decimal
|
||||
created_at datetime
|
||||
}
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [REQ0144-DemoReactHookFormExample](#)
|
26
01_Requirements/REQ0146/index.md
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0146-DemoReactLifecycles
|
||||
|
||||
## Description
|
||||
|
||||

|
||||
|
||||
## Schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table components {
|
||||
id integer
|
||||
name string
|
||||
lifecycle_stage string
|
||||
mounted_at datetime
|
||||
updated_at datetime
|
||||
}
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [REQ0145-DemoReactItemList](#)
|
26
01_Requirements/REQ0147/index.md
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0147-DemoReactLogin
|
||||
|
||||
## Description
|
||||
|
||||

|
||||
|
||||
## Schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table users {
|
||||
id integer
|
||||
username string
|
||||
password_hash string
|
||||
last_login_at datetime
|
||||
login_count integer
|
||||
}
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [REQ0146-DemoReactLifecycles](#)
|
26
01_Requirements/REQ0148/index.md
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0148-DemoReactMarvelApp
|
||||
|
||||
## Description
|
||||
|
||||

|
||||
|
||||
## Schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table characters {
|
||||
id integer
|
||||
name string
|
||||
description text
|
||||
thumbnail_url string
|
||||
comics_available integer
|
||||
}
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [REQ0147-DemoReactLogin](#)
|
27
01_Requirements/REQ0149/index.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0149-DemoReactMovieAppWithAlgolia
|
||||
|
||||
## Description
|
||||
|
||||

|
||||
|
||||
## Schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table movies {
|
||||
id integer
|
||||
title string
|
||||
year integer
|
||||
rating decimal
|
||||
search_index string
|
||||
last_updated datetime
|
||||
}
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [REQ0148-DemoReactMarvelApp](#)
|
27
01_Requirements/REQ0150/index.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0150-DemoReactNotes
|
||||
|
||||
## Description
|
||||
|
||||

|
||||
|
||||
## Schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table notes {
|
||||
id integer
|
||||
title string
|
||||
content text
|
||||
created_at datetime
|
||||
updated_at datetime
|
||||
is_pinned boolean
|
||||
}
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [REQ0149-DemoReactMovieAppWithAlgolia](#)
|
27
01_Requirements/REQ0151/index.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0151-DemoReactOnboardingUi
|
||||
|
||||
## Description
|
||||
|
||||

|
||||
|
||||
## Schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table onboarding_steps {
|
||||
id integer
|
||||
title string
|
||||
description text
|
||||
is_completed boolean
|
||||
order_number integer
|
||||
component_name string
|
||||
}
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [REQ0150-DemoReactNotes](#)
|
26
01_Requirements/REQ0152/index.md
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0152-DemoReactOverlayHooks
|
||||
|
||||
## Description
|
||||
|
||||

|
||||
|
||||
## Schema
|
||||
|
||||
```dbml
|
||||
// Add your DBML here
|
||||
Table overlays {
|
||||
id integer
|
||||
component_name string
|
||||
is_visible boolean
|
||||
z_index integer
|
||||
animation_type string
|
||||
}
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [REQ0151-DemoReactOnboardingUi](#)
|
10
01_Requirements/REQ0153/index.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
tags: [requirements]
|
||||
---
|
||||
|
||||
# REQ0153-DemoReactPollApp
|
||||
|
||||
## Description
|
||||

|
||||
|
||||
## Schema
|
1
01_Requirements/REQ0154/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoReactProfileDashboardUi
|
1
01_Requirements/REQ0155/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoReactQuotes
|
1
01_Requirements/REQ0156/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoReactShop
|
1
01_Requirements/REQ0157/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoReactShopUi
|
1
01_Requirements/REQ0158/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoReactSwitchTabs
|
1
01_Requirements/REQ0159/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoReactTabsMenusCustom
|
1
01_Requirements/REQ0160/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoReactThemeSwitcher
|
1
01_Requirements/REQ0161/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoReactTravelApp
|
1
01_Requirements/REQ0162/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoRecipeApp
|
1
01_Requirements/REQ0163/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoRestaurantFinder
|
1
01_Requirements/REQ0164/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoScoreBoard
|
1
01_Requirements/REQ0165/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoShopAppUi
|
1
01_Requirements/REQ0166/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoSkeletonText
|
1
01_Requirements/REQ0167/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoSlidingProfile
|
1
01_Requirements/REQ0168/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoStickyBottomSheetExample
|
1
01_Requirements/REQ0169/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoStorageExample
|
1
01_Requirements/REQ0170/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# DemoWeatherAppUi
|
16
01_Requirements/REQ0180/index.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
tags: docker, ports
|
||||
---
|
||||
|
||||
# REQ0180 service port schedule
|
||||
|
||||
## Port Usage
|
||||
|
||||
| Service | Host **Port** | Container Port | Environment | Purpose | subdomain |
|
||||
| ----------- | ------------- | -------------- | ----------- | -------------------------------- | ------------------------ |
|
||||
| Frontend | 10001 | 8080 | All | Web application access | pa_admin.louislabs.com |
|
||||
| Mobile | 10004 | 3000 | All | Mobile application access | pa_mobile.louislabs.com |
|
||||
| CMS Backend | 10002 | 7272 | All | Main API access | pa_backend.louislabs.com |
|
||||
| CMS Backend | 10003 | 5555 | All | Additional service access | --- |
|
||||
| Postgres | - | 5432 | Production | Database access (container only) | --- |
|
||||
| Postgres | 5432 | 5432 | Development | Database access | --- |
|
@@ -105,3 +105,56 @@
|
||||
- [REQ0116: REQ0116/main-tab](./REQ0116/index.md)
|
||||
- [REQ0117: REQ0117/default-route](./REQ0117/index.md)
|
||||
- [REQ0118: REQ0118/Not-Implemented-page](./REQ0118/index.md)
|
||||
- [REQ0119: REQ0119-Demo2FaExample](./REQ0119/index.md)
|
||||
- [REQ0120: REQ0120-PlaceholderFeature](./REQ0120/index.md)
|
||||
- [REQ0121: REQ0121-UserProfileFeature](./REQ0121/index.md)
|
||||
- [REQ0122: REQ0122-NotificationSystem](./REQ0122/index.md)
|
||||
- [REQ0123: REQ0123-AnalyticsDashboard](./REQ0123/index.md)
|
||||
- [REQ0124: REQ0124-PlaceholderTitle](./REQ0124/index.md)
|
||||
- [REQ0125: REQ0125-PlaceholderTitle](./REQ0125/index.md)
|
||||
- [REQ0126: REQ0126-PlaceholderTitle](./REQ0126/index.md)
|
||||
- [REQ0127: REQ0127-PlaceholderTitle](./REQ0127/index.md)
|
||||
- [REQ0128: REQ0128-PlaceholderTitle](./REQ0128/index.md)
|
||||
- [REQ0129: REQ0129-PlaceholderTitle](./REQ0129/index.md)
|
||||
- [REQ0130: REQ0130-PlaceholderTitle](./REQ0130/index.md)
|
||||
- [REQ0131: REQ0131-DemoInstagramClone](./REQ0131/index.md)
|
||||
- [REQ0132: REQ0132-DemoKanbanBoard](./REQ0132/index.md)
|
||||
- [REQ0133: REQ0133-DemoList](./REQ0133/index.md)
|
||||
- [REQ0134: REQ0134-DemoOrderingApp](./REQ0134/index.md)
|
||||
- [REQ0135: REQ0135-DemoPinterestFloatingTabBar](./REQ0135/index.md)
|
||||
- [REQ0136: REQ0136-DemoProfileExample](./REQ0136/index.md)
|
||||
- [REQ0137: REQ0137-DemoPullstateTutorial](./REQ0137/index.md)
|
||||
- [REQ0138: REQ0138-DemoQrScanner](./REQ0138/index.md)
|
||||
- [REQ0139: REQ0139-DemoQuizApp](./REQ0139/index.md)
|
||||
- [REQ0140: REQ0140-DemoQuoteApp](./REQ0140/index.md)
|
||||
- [REQ0141: REQ0141-DemoReactAddToCart](./REQ0141/index.md)
|
||||
- [REQ0142: REQ0142-DemoReactCalculator](./REQ0142/index.md)
|
||||
- [REQ0143: REQ0143-DemoReactDrawingCanvas](./REQ0143/index.md)
|
||||
- [REQ0144: REQ0144-DemoReactHookFormExample](./REQ0144/index.md)
|
||||
- [REQ0145: REQ0145-DemoReactItemList](./REQ0145/index.md)
|
||||
- [REQ0146: REQ0146-DemoReactLifecycles](./REQ0146/index.md)
|
||||
- [REQ0147: REQ0147-DemoReactLogin](./REQ0147/index.md)
|
||||
- [REQ0148: REQ0148-DemoReactMarvelApp](./REQ0148/index.md)
|
||||
- [REQ0149: REQ0149-DemoReactMovieAppWithAlgolia](./REQ0149/index.md)
|
||||
- [REQ0150: REQ0150-DemoReactNotes](./REQ0150/index.md)
|
||||
- [REQ0151: REQ0151-DemoReactOnboardingUi](./REQ0151/index.md)
|
||||
- [REQ0152: REQ0152-DemoReactOverlayHooks](./REQ0152/index.md)
|
||||
- [REQ0153: REQ0153-DemoReactPollApp](./REQ0153/index.md)
|
||||
- [REQ0154: DemoReactProfileDashboardUi](./REQ0154/index.md)
|
||||
- [REQ0155: DemoReactQuotes](./REQ0155/index.md)
|
||||
- [REQ0156: DemoReactShop](./REQ0156/index.md)
|
||||
- [REQ0157: DemoReactShopUi](./REQ0157/index.md)
|
||||
- [REQ0158: DemoReactSwitchTabs](./REQ0158/index.md)
|
||||
- [REQ0159: DemoReactTabsMenusCustom](./REQ0159/index.md)
|
||||
- [REQ0160: DemoReactThemeSwitcher](./REQ0160/index.md)
|
||||
- [REQ0161: DemoReactTravelApp](./REQ0161/index.md)
|
||||
- [REQ0162: DemoRecipeApp](./REQ0162/index.md)
|
||||
- [REQ0163: DemoRestaurantFinder](./REQ0163/index.md)
|
||||
- [REQ0164: DemoScoreBoard](./REQ0164/index.md)
|
||||
- [REQ0165: DemoShopAppUi](./REQ0165/index.md)
|
||||
- [REQ0166: DemoSkeletonText](./REQ0166/index.md)
|
||||
- [REQ0167: DemoSlidingProfile](./REQ0167/index.md)
|
||||
- [REQ0168: DemoStickyBottomSheetExample](./REQ0168/index.md)
|
||||
- [REQ0169: DemoStorageExample](./REQ0169/index.md)
|
||||
- [REQ0170: DemoWeatherAppUi](./REQ0170/index.md)
|
||||
- [REQ0180: REQ0180 service port schedule](./REQ0180/index.md)
|
||||
|
@@ -17,7 +17,7 @@ export async function GET(req: NextRequest, res: NextResponse) {
|
||||
|
||||
return response(result, STATUS.OK);
|
||||
} catch (error) {
|
||||
return handleError('Post - Get latest', error);
|
||||
return handleError('Helloworld - Get all', error);
|
||||
}
|
||||
}
|
||||
|
||||
|
16
03_source/docker/81_dc_down.sh
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
# -f docker-compose.db.yml
|
||||
DOCKER_COMPOSE_FILES=" -f docker-compose.yml -f docker-compose.dev.yml"
|
||||
|
||||
# docker compose $DOCKER_COMPOSE_FILES build
|
||||
docker compose $DOCKER_COMPOSE_FILES kill
|
||||
docker compose $DOCKER_COMPOSE_FILES down
|
||||
|
||||
# cd ../api_server
|
||||
# yarn docker:dev
|
||||
# cd ..
|
||||
|
||||
# docker compose $DOCKER_COMPOSE_FILES logs -f
|
16
03_source/docker/91_prod_down.sh
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
# -f docker-compose.db.yml
|
||||
DOCKER_COMPOSE_FILES=" -f docker-compose.yml"
|
||||
|
||||
# docker compose $DOCKER_COMPOSE_FILES build
|
||||
docker compose $DOCKER_COMPOSE_FILES kill
|
||||
docker compose $DOCKER_COMPOSE_FILES down
|
||||
|
||||
# cd ../api_server
|
||||
# yarn docker:dev
|
||||
# cd ..
|
||||
|
||||
# docker compose $DOCKER_COMPOSE_FILES logs -f
|
17
03_source/docker/99_prod_up.sh
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
# -f docker-compose.db.yml
|
||||
DOCKER_COMPOSE_FILES=" -f docker-compose.yml"
|
||||
|
||||
# docker compose $DOCKER_COMPOSE_FILES build
|
||||
docker compose $DOCKER_COMPOSE_FILES up -d
|
||||
|
||||
docker compose $DOCKER_COMPOSE_FILES logs -f
|
||||
|
||||
# cd ../api_server
|
||||
# yarn docker:dev
|
||||
# cd ..
|
||||
|
||||
# docker compose $DOCKER_COMPOSE_FILES logs -f
|
@@ -1,9 +1,14 @@
|
||||
services:
|
||||
frontend:
|
||||
command: "sleep infinity"
|
||||
command: 'sleep infinity'
|
||||
|
||||
mobile:
|
||||
command: "sleep infinity"
|
||||
command: 'sleep infinity'
|
||||
|
||||
cms_backend:
|
||||
command: "sleep infinity"
|
||||
command: 'sleep infinity'
|
||||
|
||||
postgres:
|
||||
# container_name: postgres
|
||||
ports:
|
||||
- '5432:5432'
|
||||
|
@@ -8,22 +8,22 @@ services:
|
||||
build: ../frontend
|
||||
# user: 1000:1000
|
||||
ports:
|
||||
- 8080:8080
|
||||
- 10001:8080
|
||||
volumes:
|
||||
- ../frontend:/app
|
||||
working_dir: "/app"
|
||||
command: "yarn dev"
|
||||
working_dir: '/app'
|
||||
command: './dev.sh'
|
||||
|
||||
mobile:
|
||||
image: 192.168.10.61:5000/hksingleparty_mobile
|
||||
build: ../mobile
|
||||
# user: 1000:1000
|
||||
ports:
|
||||
- 8081:3000
|
||||
- 10004:3000
|
||||
volumes:
|
||||
- ../mobile:/app
|
||||
working_dir: "/app"
|
||||
command: "npm run dev"
|
||||
working_dir: '/app'
|
||||
command: './dev.sh'
|
||||
|
||||
cms_backend:
|
||||
image: 192.168.10.61:5000/demo_minimal_kit_backend
|
||||
@@ -32,22 +32,19 @@ services:
|
||||
env_file:
|
||||
- .env
|
||||
ports:
|
||||
- 7272:7272
|
||||
- 5555:5555
|
||||
- 10002:7272
|
||||
- 10003:5555
|
||||
volumes:
|
||||
- ../cms_backend:/app
|
||||
working_dir: "/app"
|
||||
command: "yarn dev"
|
||||
working_dir: '/app'
|
||||
command: './dev.sh'
|
||||
|
||||
postgres:
|
||||
container_name: postgres
|
||||
image: postgres:14.1-alpine
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env
|
||||
expose:
|
||||
- "5432"
|
||||
ports:
|
||||
- "5432:5432"
|
||||
- '5432'
|
||||
volumes:
|
||||
- db:/var/lib/postgresql/data
|
||||
|
1
03_source/ionic-react-conference-app
Submodule
1
03_source/mobile.compile_ok
Submodule
1
03_source/mobile.react_17
Submodule
1
03_source/mobile.react_18
Submodule
1
03_source/mobile.react_18.test_jsx
Submodule
1
03_source/mobile.react_18.thread1
Submodule
1
03_source/mobile.react_18.thread2
Submodule
1
03_source/mobile.react_18.thread3
Submodule
1
03_source/mobile.react_18_baseline
Submodule
1
03_source/mobile.react_18_test_pullstate
Submodule
1
03_source/mobile.react_19
Submodule
1
03_source/mobile.test.pullstate
Submodule
15
03_source/mobile.trunk.1/.editorconfig
Normal file
@@ -0,0 +1,15 @@
|
||||
# http://editorconfig.org
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.md]
|
||||
insert_final_newline = false
|
||||
trim_trailing_whitespace = false
|
5
03_source/mobile.trunk.1/.firebaserc
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"projects": {
|
||||
"default": "ionic-react-conference-app"
|
||||
}
|
||||
}
|
89
03_source/mobile.trunk.1/.gitignore
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
**/*Zone.Identifier
|
||||
**/*bak
|
||||
**/*del
|
||||
**/*log
|
||||
**/*tmp
|
||||
|
||||
# Logs
|
||||
.firebase
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
|
||||
# nyc test coverage
|
||||
.nyc_output
|
||||
|
||||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Bower dependency directory (https://bower.io/)
|
||||
bower_components
|
||||
|
||||
# node-waf configuration
|
||||
.lock-wscript
|
||||
|
||||
# Compiled binary addons (http://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
jspm_packages/
|
||||
|
||||
# Typescript v1 declaration files
|
||||
typings/
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Optional REPL history
|
||||
.node_repl_history
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# dotenv environment variables file
|
||||
.env
|
||||
|
||||
# See https://help.github.com/ignore-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
# production
|
||||
/dist
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
.stencil/
|
1
03_source/mobile.trunk.1/.netlify/_redirects
Normal file
@@ -0,0 +1 @@
|
||||
/* /index.html 200
|
3
03_source/mobile.trunk.1/.netlify/state.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"siteId": "86675615-6271-4145-8ffe-9c78dc4d34a3"
|
||||
}
|
30
03_source/mobile.trunk.1/.prettierrc
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"tabWidth": 2,
|
||||
"semi": true,
|
||||
"singleQuote": true,
|
||||
"trailingComma": "es5",
|
||||
"printWidth": 100,
|
||||
"overrides": [
|
||||
{
|
||||
"files": "src/App.tsx",
|
||||
"options": {
|
||||
"printWidth": 160
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": "src/routes/*",
|
||||
"options": {
|
||||
"printWidth": 160
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"*.html",
|
||||
"legacy/**/*.js"
|
||||
],
|
||||
"options": {
|
||||
"tabWidth": 4
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
3
03_source/mobile.trunk.1/.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"typescript.tsdk": "node_modules/typescript/lib"
|
||||
}
|
23
03_source/mobile.trunk.1/LICENSE
Normal file
@@ -0,0 +1,23 @@
|
||||
Copyright 2015-present Drifty Co.
|
||||
http://drifty.com/
|
||||
|
||||
MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
71
03_source/mobile.trunk.1/README.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# Ionic React Conference App
|
||||
|
||||
[](https://ionicframework.com)
|
||||
[](https://reactjs.org)
|
||||
[](LICENSE)
|
||||
|
||||
|
||||
This is a **kitchen-sink demo application** built with **Ionic Framework** and **React**. It showcases a wide range of Ionic components and features in the context of a fictional tech conference app.
|
||||
|
||||
**Note**: There is no actual Ionic Conference. This project is purely for demonstration purposes.
|
||||
|
||||
👉 [Try the Live Demo](https://ionic-react-conference-app-git-main-ionic1.vercel.app/tutorial)
|
||||
|
||||
## 🧱 Framework Variants
|
||||
|
||||
This app is also available in other frameworks:
|
||||
|
||||
- 🔗 [Ionic Angular Conference App](https://github.com/ionic-team/ionic-conference-app)
|
||||
- 🔗 [Ionic Vue Conference App](https://github.com/ionic-team/ionic-vue-conference-app)
|
||||
- ✅ **You're viewing the React version**
|
||||
|
||||
## ✨ Features
|
||||
|
||||
- Browse conference schedule with filtering
|
||||
- View speaker bios and session details
|
||||
- User authentication and profile management
|
||||
- Interactive maps for venue navigation
|
||||
- Push notifications support
|
||||
- Dark/Light mode toggling
|
||||
- Cross-platform support: iOS, Android, and Web
|
||||
|
||||
## ⚙️ Getting Started
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Node.js (LTS version recommended) → [Download](https://nodejs.org/)
|
||||
- npm (included with Node.js)
|
||||
- Ionic CLI → Install globally:
|
||||
```bash
|
||||
npm install -g ionic
|
||||
```
|
||||
|
||||
### Installation
|
||||
1. Clone the repository:
|
||||
```bash
|
||||
git clone https://github.com/ionic-team/ionic-react-conference-app.git
|
||||
```
|
||||
2. Navigate into the project:
|
||||
```bash
|
||||
cd ionic-react-conference-app
|
||||
```
|
||||
3. Install dependencies:
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
4. Start the dev server:
|
||||
```bash
|
||||
ionic serve
|
||||
```
|
||||
5. Open your browser to:
|
||||
```
|
||||
http://localhost:3000
|
||||
```
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
We welcome contributions! Please see our [Contributing Guide](.github/CONTRIBUTING.md) for details on how to submit pull requests, report issues, and contribute to the project.
|
||||
|
||||
## 📄 License
|
||||
|
||||
This project is licensed under the MIT [License](./LICENSE).
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |