Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
428 commits
Select commit Hold shift + click to select a range
4f67b4e
feat(native): implement TermsConsentSheet component for user agreemen…
sterdsterd Dec 4, 2025
5408ca8
feat(native): redesign LoginScreen with social login options and term…
sterdsterd Dec 4, 2025
2e1b1db
Merge pull request #145 from team-ppointer/feat/native/problem-#141
b0nsu Dec 4, 2025
bd4153c
feat(native): add CircleXFilledIcon and MessageSquareWarningFilledIco…
sterdsterd Dec 4, 2025
7c8fa38
feat(native): add OptionButton component
sterdsterd Dec 4, 2025
24c922c
feat(native): add InfoCard component
sterdsterd Dec 4, 2025
e05e970
feat(native): add MailBoxGraphic component for onboarding visuals
sterdsterd Dec 4, 2025
f9f4418
feat(native): add OnboardingInput component
sterdsterd Dec 4, 2025
bcc9232
feat(native): add OnboardingLayout component
sterdsterd Dec 4, 2025
72d2bde
feat(native): create index file for onboarding components export
sterdsterd Dec 4, 2025
30cd359
feat(native): add onboarding constants and Zustand store for managing…
sterdsterd Dec 4, 2025
bc70ba5
feat(native): implement EmailStep component for onboarding process wi…
sterdsterd Dec 4, 2025
5bced89
feat(native): add IdentityStep component for onboarding with form val…
sterdsterd Dec 4, 2025
b49f27a
feat(native): add GradeStep component for onboarding to select high s…
sterdsterd Dec 4, 2025
02fbc91
feat(native): add MathSubjectStep component for onboarding to select …
sterdsterd Dec 4, 2025
ff41088
feat(native): add SchoolStep component for onboarding to select curre…
sterdsterd Dec 4, 2025
66c2989
feat(native): add ScoreStep component for onboarding to select recent…
sterdsterd Dec 4, 2025
e1ca3f9
feat(native): add NicknameStep component for onboarding to input user…
sterdsterd Dec 4, 2025
283e5b3
feat(native): add WelcomeStep component for onboarding to greet users…
sterdsterd Dec 4, 2025
851e65c
feat(native): implement OnboardingScreen component to manage onboardi…
sterdsterd Dec 4, 2025
f3ba6df
feat(native): integrate onboarding flow into LoginScreen and StudentN…
sterdsterd Dec 4, 2025
2e6cc9b
feat(native): enhance authentication flow to trigger onboarding based…
sterdsterd Dec 4, 2025
2653ffb
refactor(native): update navigation type in NotificationsScreen to us…
sterdsterd Dec 4, 2025
69969ef
chore(native): remove unnecessary whitespace from CalendarNotStartedI…
sterdsterd Dec 6, 2025
8e3f406
chore(native): update api schema
sterdsterd Dec 6, 2025
88021d4
refactor(native): move @api/controller/ to @api/controller/student
sterdsterd Dec 6, 2025
ba2fdeb
chore: Add Dropdown Package
b0nsu Dec 10, 2025
d919a0f
chore: Add Dropdown, Toast Package
b0nsu Dec 10, 2025
a4a6b43
style: Add Icons
b0nsu Dec 10, 2025
c8f2d0b
style: Add Icons
b0nsu Dec 10, 2025
e757c03
feat: Implement Scrap Main Header
b0nsu Dec 10, 2025
19d4f26
feat: Implement Scrap Page
b0nsu Dec 10, 2025
6ea1442
feat: Implement Scrap Item Grid
b0nsu Dec 10, 2025
bdb85dc
chore: Add Dropdown Package
b0nsu Dec 10, 2025
867c43e
feat: Initialize Scrap Search Page
b0nsu Dec 10, 2025
8b0a953
feat: Implement Reducer
b0nsu Dec 10, 2025
6ac7e3f
feat: add tooltip and toast packages
b0nsu Dec 12, 2025
1939103
feat: add scrapDataStore with search functionality
b0nsu Dec 12, 2025
dea0524
feat: add scrapDataStore with search functionality
b0nsu Dec 12, 2025
02ceb4b
chore: add temporary data generation functions
b0nsu Dec 12, 2025
76258d4
feat: add tooltip and toast packages
b0nsu Dec 12, 2025
8fe1835
feat: add sorting functionality
b0nsu Dec 12, 2025
c28fb01
feat: implement scrap search page
b0nsu Dec 12, 2025
f097373
feat: add sorting functionality, refactor: change ScrapGrid data prop
b0nsu Dec 12, 2025
5f742e6
feat: add scrap item types
b0nsu Dec 12, 2025
f7abc0d
refactor: restructure ScrapItem props
b0nsu Dec 12, 2025
6a32431
refactor: change directory structure
b0nsu Dec 12, 2025
8db60c3
refactor: change directory structure
b0nsu Dec 12, 2025
fd493b7
refactor: change directory structure
b0nsu Dec 12, 2025
38a0778
refactor(scrap): update scrap and folder type definitions
b0nsu Dec 16, 2025
0824af4
feat(scrap): implement scrap create, update, delete, and search logic
b0nsu Dec 16, 2025
4fc5cc0
feat(trash): add trash store with restore and permanent delete
b0nsu Dec 16, 2025
9610791
feat(scrap): add folder content list screen
b0nsu Dec 16, 2025
f443d5a
refactor(sort): improve sorting logic and usage
b0nsu Dec 16, 2025
f616f75
feat(ui): implement responsive auto grid layout
b0nsu Dec 16, 2025
2249678
refactor(search): improve scrap search page and results
b0nsu Dec 16, 2025
b605394
feat(trash): add trash page and header
b0nsu Dec 16, 2025
cdd5b28
feat(trash): add tooltip and close behavior
b0nsu Dec 16, 2025
2de653d
chore(ui): rename Item components to Card and update filenames
b0nsu Dec 16, 2025
0c2e6ec
refactor(reducer): make reducer exhaustive
b0nsu Dec 16, 2025
a91023d
feat(scrap): implement search logic
b0nsu Dec 16, 2025
2936c88
refactor(sort): improve sorting logic and usage
b0nsu Dec 16, 2025
a0e2b3d
refactor(search): improve scrap search page and results
b0nsu Dec 16, 2025
0b2199d
refactor(ui): improve modal UI
b0nsu Dec 16, 2025
6c6eeb6
refactor(scrap): update scrap header props
b0nsu Dec 16, 2025
1b2ef37
refactor(scrap): improve scrap page implementation
b0nsu Dec 16, 2025
9481c12
Temp will deprecated
b0nsu Dec 16, 2025
bc14101
fix: correct typos
b0nsu Dec 16, 2025
52a5157
feat: add scrap API integration
b0nsu Dec 18, 2025
899aeec
refactor: separate card component
b0nsu Dec 18, 2025
6d0947a
refactor: separate tooltip component
b0nsu Dec 18, 2025
dab5732
feat: update header back navigation UI
b0nsu Dec 18, 2025
f9b4fbb
refactor: separate scrap card component
b0nsu Dec 18, 2025
fe5e74b
refactor: remove scrap and trash stores and update store logic
b0nsu Dec 18, 2025
d5b3dc9
chore: update toast config
b0nsu Dec 18, 2025
11cbbb6
feat: integrate scrap API
b0nsu Dec 18, 2025
8471240
feat: revise screen UI and integrate API with refactored structure
b0nsu Dec 18, 2025
b3244e8
refactor: add props type to card component
b0nsu Dec 18, 2025
0b52ed9
feat: implement fullscreen modal
b0nsu Dec 18, 2025
7b9c563
refactor: deprecate unused feature
b0nsu Dec 18, 2025
a82c140
refactor: deprecate unused feature
b0nsu Dec 18, 2025
0536124
refactor: update code to match API schema
b0nsu Dec 18, 2025
c376f4f
refactor: update code to match API schema
b0nsu Dec 18, 2025
98169ef
refactor: update code to match API schema
b0nsu Dec 18, 2025
42b247d
refactor: update navigator
b0nsu Dec 18, 2025
a668700
chore: add expo-blur and expo-image-picker
b0nsu Dec 18, 2025
2396814
refactor: remove type workaround
b0nsu Dec 18, 2025
2e6a788
refactor(api): migrate to TanStack Query client
b0nsu Dec 19, 2025
ac65dc1
fix(api): invalidate all search queries to prevent stale cache
b0nsu Dec 19, 2025
63c40c5
feat(api): add file upload API
b0nsu Dec 19, 2025
849a5ce
fix(api): update trash API
b0nsu Dec 19, 2025
f71f1f3
refactor(store): rename store
b0nsu Dec 19, 2025
e40aae2
refactor(api): refactor API
b0nsu Dec 19, 2025
f78d31b
fix(reducer): improve select state handling with type checks
b0nsu Dec 19, 2025
2c903e9
refactor(api): change data fetching Query
b0nsu Dec 19, 2025
982a95f
refactor(api): change data fetching Query and add search debounce
b0nsu Dec 19, 2025
7635306
feat(scrap): add create scrap functionality
b0nsu Dec 19, 2025
adbab4a
refactor(api): modify fetch query parameters
b0nsu Dec 19, 2025
ffdd0a3
feat(scrap): implement scrap detail page
b0nsu Dec 19, 2025
ebf902b
feat(scrap): implement scrap detail page
b0nsu Dec 19, 2025
4490a10
chore: add react-native-skia dependency
b0nsu Dec 22, 2025
005d502
feat: implement handwriting editor
b0nsu Dec 22, 2025
be12853
feat: add smoothing to handwriting editor
b0nsu Dec 22, 2025
66e9adf
Refactor: relocate handwriting API to dedicated directory
b0nsu Dec 24, 2025
dc06dbd
Refactor Card component to support responsive sizing in grid layout
b0nsu Dec 24, 2025
a260fdd
Refactor Grid component to support responsive layout
b0nsu Dec 24, 2025
1a15f0a
Refactor grid layout function for responsive design
b0nsu Dec 24, 2025
e5185ab
Implement handwriting functionality
b0nsu Dec 24, 2025
0bf46c6
Refactor props type
b0nsu Dec 24, 2025
e4e24d8
Refactor props type
b0nsu Dec 24, 2025
f754754
Implement handwriting functionality
b0nsu Dec 24, 2025
1c73a8e
Implement useGetFolderDetail for folder data fetching
b0nsu Dec 24, 2025
b2a3f2a
Refactor: separate tooltip directory
b0nsu Dec 25, 2025
1fef3cf
Fix: remove max size constraint from grid layout
b0nsu Dec 25, 2025
fccb6d4
Feat: add scrap move feature and modal
b0nsu Dec 25, 2025
d618ccc
Feat: add folder creation and separate image picker modal
b0nsu Dec 25, 2025
eea566f
Feat: add scrap move feature
b0nsu Dec 25, 2025
5771865
Fix: correct responsive layout behavior
b0nsu Dec 25, 2025
62233e0
Fix: correct responsive layout behavior
b0nsu Dec 25, 2025
30e5a32
Fix: invalidate API queries
b0nsu Dec 25, 2025
4c19034
Refactor: move ScrapHeadCard directory
b0nsu Dec 25, 2025
c51a999
feat(native): add new api endpoints
sterdsterd Dec 25, 2025
ca42a35
chore(native): update openapi schema
sterdsterd Dec 25, 2025
d52f3de
fix(native): improve user info display in MenuScreen by formatting ou…
sterdsterd Dec 25, 2025
0364e63
feat(native): enhance onboarding flow with improved state management …
sterdsterd Dec 25, 2025
7e7bd28
feat(native): update email validation in onboarding flow with API int…
sterdsterd Dec 25, 2025
b3a0ce7
feat(native): update ProblemViewer component to use KoPub Batang font…
sterdsterd Dec 25, 2025
0f4c927
Merge pull request #150 from team-ppointer/geat/native/login-#146
sterdsterd Dec 25, 2025
412f741
fix(api): handle optimistic update for API
b0nsu Dec 29, 2025
33907d2
feat: apply skeleton image
b0nsu Dec 29, 2025
974df70
feat: implement recent scrap
b0nsu Dec 29, 2025
ecfd4a9
fix: update image util
b0nsu Dec 29, 2025
3fe9d40
feat: add recent scrap section
b0nsu Dec 29, 2025
06dd643
fix: update FlatList keyExtractor
b0nsu Dec 29, 2025
1dd92bb
feat: make Card component responsive and add skeleton image
b0nsu Dec 29, 2025
fd6ce3f
fix: update header
b0nsu Dec 29, 2025
d3e0e70
fix: update image upload functionality
b0nsu Dec 29, 2025
b5ac3ae
fix: update drag tab UX
b0nsu Dec 29, 2025
481ef94
fix: update MoveScrapModal props
b0nsu Dec 29, 2025
47ed665
fix: exclude self info in MoveScrapModal
b0nsu Dec 29, 2025
a237b3f
fix: update image functionality
b0nsu Dec 29, 2025
d274db5
feat: connect AsyncStorage
b0nsu Dec 29, 2025
d725059
feat: add new API endpoints for scrap and Q&A functionalities
b0nsu Dec 30, 2025
a1a9ea4
feat: enhance card types with trash functionality and update API resp…
b0nsu Dec 30, 2025
200ecc0
feat: add @react-native-async-storage/async-storage dependency and up…
b0nsu Dec 30, 2025
2f5775c
feat: add Q&A image retrieval and folder update functionalities
b0nsu Dec 30, 2025
284623f
feat: extend card exports to include trash-related types
b0nsu Dec 30, 2025
6388621
feat: refactor card components to utilize new props structure and enh…
b0nsu Dec 30, 2025
d76fd2e
feat: refactor image upload handling and enhance pre-signed URL funct…
b0nsu Dec 30, 2025
1857479
feat: enhance TooltipPopover component with dynamic styling based on …
b0nsu Dec 30, 2025
4c68a8c
feat: refactor SearchScrapScreen to separate folder and scrap results…
b0nsu Dec 30, 2025
7181b79
feat: refactor CreateFolderModal to enhance pre-signed URL handling a…
b0nsu Dec 30, 2025
f41f347
feat: update TrashItemTooltip to use new TrashListItemProps for impro…
b0nsu Dec 30, 2025
eefe975
refactor: simplify ScrapCard and TrashCard components by removing unn…
b0nsu Dec 30, 2025
0b2f2b3
feat: refactor scrap screens to integrate ScrapModalProvider and enha…
b0nsu Jan 1, 2026
08c10ee
feat: add useGetQnaAllImages hook for retrieving all Q&A images
b0nsu Jan 1, 2026
3f38576
refactor: update ScrapCard and ScrapAddItem components to utilize Scr…
b0nsu Jan 1, 2026
79fb9c2
feat: implement ScrapModalContext for managing modal states and refet…
b0nsu Jan 1, 2026
e9363e7
refactor: remove unused updateFolder mutation from ItemTooltip component
b0nsu Jan 1, 2026
6599edc
refactor: update modal components to utilize ScrapModalContext for im…
b0nsu Jan 1, 2026
cfdfaf1
fix: format updatedAt in RecentScrapCard to display time in minutes f…
b0nsu Jan 1, 2026
6b5e2d8
feat: add formatToMinute utility function for consistent date formatt…
b0nsu Jan 1, 2026
1642c25
fix: resolve TypeScript errors in scrap API controller
b0nsu Jan 1, 2026
0f9b086
refactor: reorganize scrap feature directory structure and rename fil…
b0nsu Jan 1, 2026
68c8351
feat: add loading skeleton to ImageWithSkeleton component for improve…
b0nsu Jan 1, 2026
051c882
fix: adjust ScrapHeader layout for conditional title rendering
b0nsu Jan 1, 2026
9a17f7c
refactor: update DeletedScrapHeader to use actions object for event h…
b0nsu Jan 1, 2026
b1aa192
refactor: update useCardImageSources hook to prioritize thumbnailUrl …
b0nsu Jan 1, 2026
a4821ea
refactor: increase recent scrap limit from 10 to 30 in useRecentScrap…
b0nsu Jan 1, 2026
f124915
refactor: streamline event handling in DeletedScrapScreen by using ac…
b0nsu Jan 1, 2026
79ae6de
refactor: enhance MoveScrapModal layout and structure for improved us…
b0nsu Jan 1, 2026
124e7d3
feat: implement FolderScrapScreen and ScrapDetailScreen for enhanced …
b0nsu Jan 1, 2026
b212557
feat: add history management and text handling improvements in Drawin…
b0nsu Jan 1, 2026
f6b121c
Merge pull request #152 from team-ppointer/geat/native/scrap-#138
b0nsu Jan 2, 2026
9f55a05
Merge pull request #152 from team-ppointer/feat/native/scrap-#138-2
b0nsu Jan 2, 2026
ba10336
feat: add new icon components for enhanced UI
b0nsu Jan 2, 2026
02563a2
feat: add ProfileIcon component for user profile representation
b0nsu Jan 2, 2026
f59cde0
feat: add new icon components for improved UI consistency
b0nsu Jan 2, 2026
502e5ae
feat: implement MenuNavigator for enhanced navigation in student menu
b0nsu Jan 2, 2026
194c96d
feat: add new components for student menu including AppVersionItem, I…
b0nsu Jan 2, 2026
7635847
feat: enhance MenuScreen with new layout and components
b0nsu Jan 2, 2026
cc6a19c
feat: add Feedback, Notice, NotificationSettings, PhoneNumber, Terms,…
b0nsu Jan 2, 2026
b6be8d3
feat: implement recent scrap, note, and search history stores for enh…
b0nsu Jan 2, 2026
8d213d3
refactor: update import paths for scrap stores in RecentScrapCard, Sc…
b0nsu Jan 2, 2026
92ab56f
feat: add ConfirmationModal component for enhanced user interaction i…
b0nsu Jan 2, 2026
36e57a5
feat: update SearchScrapHeader component with new icon and text for i…
b0nsu Jan 2, 2026
2868274
feat: export ConfirmationModal from Dialog index for improved compone…
b0nsu Jan 2, 2026
1fb1b8e
refactor: update import path for useNoteStore in ScrapItemTooltip com…
b0nsu Jan 2, 2026
aa0be08
fix: update success toast message in MoveScrapModal for clarity and c…
b0nsu Jan 2, 2026
9e25635
refactor: replace SafeAreaView with useSafeAreaInsets for better hand…
b0nsu Jan 2, 2026
0f9a97a
refactor: update import paths for scrap stores and replace PermanentD…
b0nsu Jan 2, 2026
866234a
feat(native): add new dependencies for segmented control, document pi…
sterdsterd Jan 3, 2026
7f44681
feat(native): integrate ChatRoom and Search screens into QnA feature,…
sterdsterd Jan 3, 2026
fddb458
fix(native): lint
sterdsterd Jan 3, 2026
f39ccff
chore(native): update schema.d.ts
sterdsterd Jan 3, 2026
7a64a58
refactor(native): remove unused diagnosis and notice API hooks and re…
sterdsterd Jan 3, 2026
48d9e61
feat(native): implement QnA API hooks for CRUD operations and subscri…
sterdsterd Jan 3, 2026
50f37c5
chore(native): add react-native-sse dependency version 1.2.1 to packa…
sterdsterd Jan 3, 2026
c50d29a
feat(native): enhance QnA feature with real-time chat updates and imp…
sterdsterd Jan 3, 2026
72f1c5a
feat: add focus listener to MenuMain screen for dynamic tab bar visib…
b0nsu Jan 3, 2026
ba3abc4
chore(native): add @react-native-community/netinfo and react-native-i…
sterdsterd Jan 3, 2026
c11491c
feat(native): implement file upload hooks with presigned URL generati…
sterdsterd Jan 3, 2026
ea7b064
feat(native): enhance QnA chat functionality with message editing, fi…
sterdsterd Jan 3, 2026
a2db6bb
feat(admin): add QnA API endpoints and chat functionalities including…
sterdsterd Jan 4, 2026
ca287c9
refactor(native): update QnA message mapping to sort chats by ID and …
sterdsterd Jan 4, 2026
3545a4a
feat(admin): add error handling for image loading in QnA components
sterdsterd Jan 4, 2026
ad819a2
feat(native): add error handling for image loading in MessageBubble c…
sterdsterd Jan 4, 2026
1be4257
feat(native): add debounce mechanism for read status events in ChatRo…
sterdsterd Jan 4, 2026
0563a67
feat(native): update ChatRoom and SearchScreen to handle publisher ch…
sterdsterd Jan 4, 2026
7a2d3a9
refactor(native): clean up layout and improve safe area handling in C…
sterdsterd Jan 4, 2026
48f6103
Merge origin/native into feat/native/qna-#151
sterdsterd Jan 4, 2026
d2f152f
feat(native): add new icons including ChevronUpFilled, CircleCheckDas…
sterdsterd Jan 4, 2026
cfef850
refactor(native): update API imports and restructure scrap-related co…
sterdsterd Jan 4, 2026
754b506
feat: add lottie-react-native dependency and new animation asset for …
b0nsu Jan 6, 2026
0250fb1
feat: add style prop to TextButton component for customizable styling
b0nsu Jan 6, 2026
14a9af5
feat: add EraserFilledIcon and PencilFilledIcon components for enhanc…
b0nsu Jan 6, 2026
3528b51
feat: enhance IconButton component with customizable size, radius, an…
b0nsu Jan 6, 2026
a588f41
refactor: update ScrapHeadCard exports to use new component names Scr…
b0nsu Jan 6, 2026
147ea62
feat: add ALL item type and update ScrapGrid to handle new ScrapAddCa…
b0nsu Jan 6, 2026
060bb8e
refactor: update item handling in various screens to ensure correct t…
b0nsu Jan 6, 2026
f70cabc
refactor: streamline TrashCard component to improve item selection ha…
b0nsu Jan 6, 2026
c58a98c
feat: enhance ScrapDetailScreen with new icons, improved UI elements,…
b0nsu Jan 6, 2026
e748b82
feat: enhance tooltips and modals with new components for improved UI…
b0nsu Jan 6, 2026
30fafc9
feat: implement new scrap components including DraggableTab, DrawingT…
b0nsu Jan 6, 2026
162278e
feat: add drawing state management, handwriting manager, and UI state…
b0nsu Jan 6, 2026
d1fa006
refactor: simplify ScrapDetailScreen by removing unused imports, opti…
b0nsu Jan 6, 2026
d71115d
feat: improve ImageWithSkeleton component by adding individual loadin…
b0nsu Jan 6, 2026
9c881bf
Merge pull request #154 from team-ppointer/feat/native/qna-#151
sterdsterd Jan 6, 2026
37eb0ea
refactor(native): rename 'images' to 'files' in QnA components and up…
sterdsterd Jan 6, 2026
f300204
lint(native): remove unnecessary blank line in useGetQnaFilesById.ts …
sterdsterd Jan 7, 2026
0bb6129
fix(native): update text and icon colors in MainTabBar
sterdsterd Jan 7, 2026
05c4885
chore(admin): update api schema.d.ts
sterdsterd Jan 7, 2026
0314399
Merge branch 'native' into feat/native/menu-#152
b0nsu Jan 7, 2026
2a22169
Merge pull request #153 from team-ppointer/feat/native/menu-#152
b0nsu Jan 7, 2026
affb666
feat(admin): enhance CreatePracticeTestModal with improved layout and…
sterdsterd Jan 7, 2026
9f0e0e7
refactor(admin): update SegmentedControl and PracticeTestSelect compo…
sterdsterd Jan 7, 2026
875237b
feat(admin): implement practice test selection and create type option…
sterdsterd Jan 7, 2026
1645d9b
fix(admin): adjust column width in problem table header for better al…
sterdsterd Jan 7, 2026
77475e9
feat(admin): integrate problem editor components for diagnosis manage…
sterdsterd Jan 7, 2026
30f272b
feat(admin): add editing functionality for notices, integrate problem…
sterdsterd Jan 7, 2026
c00d1a5
refactor(admin): simplify ImageMessage rendering and adjust input are…
sterdsterd Jan 7, 2026
a83cf8d
feat(admin): add notification controller export and define GetNotific…
sterdsterd Jan 7, 2026
c100c0e
feat(admin): add notification icon to GNB for improved user access to…
sterdsterd Jan 7, 2026
edb70b5
refactor(native): rename image-related functions to file-related func…
sterdsterd Jan 7, 2026
7c73696
feat(native): add notification hooks for fetching and marking notific…
sterdsterd Jan 7, 2026
39a361a
feat(native): enhance notification screens with dynamic data handling…
sterdsterd Jan 7, 2026
ad8a0a0
feat(native): add PointerSymbol icon to system icons for enhanced UI
sterdsterd Jan 7, 2026
8b85bfb
refactor(native): home ui
sterdsterd Jan 7, 2026
47c07d0
Merge remote-tracking branch 'origin/native' into refactor/native/#155
sterdsterd Jan 7, 2026
66dd25f
Merge pull request #156 from team-ppointer/refactor/native/#155
sterdsterd Jan 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 14 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"permissions": {
"allow": [
"Bash(grep:*)",
"Bash(tree:*)",
"Bash(find:*)",
"Bash(git mv:*)",
"Bash(wc:*)",
"Bash(npx tsc:*)",
"Bash(git add:*)",
"Bash(git commit:*)"
]
}
}
140 changes: 140 additions & 0 deletions .github/workflows/expo-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
name: Deploy to EC2 and Notify Slack

on:
push:
branches:
- native

jobs:
deploy:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Deploy to EC2
uses: appleboy/ssh-action@master
env:
REPO_PATH: /home/ubuntu/Pointer
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
envs: REPO_PATH
script: |
cd $REPO_PATH
echo "Pulling latest changes..."
git pull origin native

echo "Installing dependencies..."
cd apps/native
npm install
pm2 restart expo

echo "✅ Deployment completed!"

- name: Prepare commit message
if: always()
id: commit
run: |
COMMIT_MSG=$(echo '${{ github.event.head_commit.message }}' | head -n 1 | sed 's/"/\\"/g' | sed "s/'/\\'/g")
echo "message=$COMMIT_MSG" >> $GITHUB_OUTPUT

- name: Notify Slack - Success
if: success()
uses: slackapi/[email protected]
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
with:
payload: |
{
"text": "✅ Expo Deployment Success",
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "✅ Expo Deployment Successful"
}
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Repository:* ${{ github.repository }}"
},
{
"type": "mrkdwn",
"text": "*Branch:* ${{ github.ref_name }}"
},
{
"type": "mrkdwn",
"text": "*Author:* ${{ github.event.head_commit.author.name }}"
},
{
"type": "mrkdwn",
"text": "*Commit:* ${{ steps.commit.outputs.message }}"
}
]
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "<${{ github.event.head_commit.url }}|View Commit>"
}
}
]
}

- name: Notify Slack - Failure
if: failure()
uses: slackapi/[email protected]
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
with:
payload: |
{
"text": "❌ Expo Deployment Failed",
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "❌ Expo Deployment Failed"
}
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Repository:* ${{ github.repository }}"
},
{
"type": "mrkdwn",
"text": "*Branch:* ${{ github.ref_name }}"
},
{
"type": "mrkdwn",
"text": "*Author:* ${{ github.event.head_commit.author.name }}"
},
{
"type": "mrkdwn",
"text": "*Commit:* ${{ steps.commit.outputs.message }}"
}
]
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "⚠️ Check the <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|workflow logs>"
}
}
]
}
2 changes: 2 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@team-ppointer:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${NPM_TOKEN}
5 changes: 4 additions & 1 deletion apps/admin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"serve": "vite preview",
"start": "vite",
"lint": "eslint .",
"openapi": "pnpm dlx openapi-typescript https://api.math-pointer.com/v3/api-docs --output ./src/types/api/schema.d.ts && prettier --write ./src/types/api/schema.d.ts"
"openapi": "pnpm dlx openapi-typescript https://dev.api.math-pointer.com/v3/api-docs --output ./src/types/api/schema.d.ts && prettier --write ./src/types/api/schema.d.ts"
},
"dependencies": {
"@dnd-kit/core": "^6.3.1",
Expand All @@ -23,12 +23,15 @@
"@tanstack/react-query-devtools": "^5.66.0",
"@tanstack/react-router": "^1.98.4",
"@tanstack/router-devtools": "^1.98.4",
"@team-ppointer/pointer-editor-v2": "^2.3.0",
"clsx": "^2.1.1",
"dayjs": "^1.11.13",
"immer": "^10.1.1",
"lodash": "^4.17.21",
"lucide-react": "^0.553.0",
"openapi-fetch": "^0.13.4",
"openapi-react-query": "^0.3.0",
"progressive-blur": "^1.0.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-dropzone": "^14.3.5",
Expand Down
12 changes: 12 additions & 0 deletions apps/admin/src/apis/controller/notification/getNotification.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { $api } from '@apis';
import { GetNotificationParams } from '@types';

const getNotification = (params: GetNotificationParams) => {
return $api.useQuery('get', '/api/admin/notification', {
params: {
query: params,
},
});
};

export default getNotification;
4 changes: 4 additions & 0 deletions apps/admin/src/apis/controller/notification/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import getNotification from './getNotification';
import postNotification from './postNotification';

export { getNotification, postNotification };
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { $api } from '@apis';

const postNotification = () => {
return $api.useMutation('post', '/api/admin/notification/send');
};

export default postNotification;
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ const postPracticeTest = () => {
return $api.useMutation('post', '/api/admin/practice-test');
};

export default postPracticeTest;
export default postPracticeTest;
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ const putPracticeTest = () => {
return $api.useMutation('put', '/api/admin/practice-test/{id}');
};

export default putPracticeTest;
export default putPracticeTest;
2 changes: 0 additions & 2 deletions apps/admin/src/apis/controller/problemSet/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import getProblemSetById from './getProblemSetById';
import getProblemSetSearch from './getProblemSetSearch';
import postProblemSet from './postProblemSet';
import putProblemSet from './putProblemSet';
import putProblemSetStatus from './putProblemSetStatus';
import putProblemSetToggleStatus from './putProblemSetToggleStatus';

export {
Expand All @@ -14,6 +13,5 @@ export {
getProblemSetSearch,
postProblemSet,
putProblemSet,
putProblemSetStatus,
putProblemSetToggleStatus,
};

This file was deleted.

8 changes: 8 additions & 0 deletions apps/admin/src/apis/controller/qna/deleteQnaChat.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { $api } from '@apis';

const deleteQnaChat = () => {
return $api.useMutation('delete', '/api/admin/qna/chat/{chatId}');
};

export default deleteQnaChat;

16 changes: 16 additions & 0 deletions apps/admin/src/apis/controller/qna/getQna.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { $api } from '@apis';

interface GetQnaParams {
query?: string;
}

const getQna = (params?: GetQnaParams) => {
return $api.useQuery('get', '/api/admin/qna', {
params: {
query: params,
},
});
};

export default getQna;

22 changes: 22 additions & 0 deletions apps/admin/src/apis/controller/qna/getQnaById.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { $api } from '@apis';

interface GetQnaByIdParams {
qnaId: number;
enabled?: boolean;
}

const getQnaById = ({ qnaId, enabled = true }: GetQnaByIdParams) => {
return $api.useQuery(
'get',
'/api/admin/qna/{qnaId}',
{
params: {
path: { qnaId },
},
},
{ enabled }
);
};

export default getQnaById;

9 changes: 9 additions & 0 deletions apps/admin/src/apis/controller/qna/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import deleteQnaChat from './deleteQnaChat';
import getQna from './getQna';
import getQnaById from './getQnaById';
import postQnaChat from './postQnaChat';
import putQnaChat from './putQnaChat';
import useSubscribeQna from './useSubscribeQna';

export { deleteQnaChat, getQna, getQnaById, postQnaChat, putQnaChat, useSubscribeQna };

8 changes: 8 additions & 0 deletions apps/admin/src/apis/controller/qna/postQnaChat.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { $api } from '@apis';

const postQnaChat = () => {
return $api.useMutation('post', '/api/admin/qna/chat');
};

export default postQnaChat;

8 changes: 8 additions & 0 deletions apps/admin/src/apis/controller/qna/putQnaChat.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { $api } from '@apis';

const putQnaChat = () => {
return $api.useMutation('put', '/api/admin/qna/chat/{chatId}');
};

export default putQnaChat;

Loading