Skip to content

Commit e7ba7da

Browse files
committed
feat: consolidate project updates including notifications, payments, and quality improvements
- Implement comprehensive Notifications system (backend & frontend) - Add Payments module with checkout flow and E2E tests - Enhance AI Quiz generation and course management - Fix linting errors across monorepo (API & Web) - Improve test coverage (Unit & E2E for auth, courses, payments) - Update project configuration and dependencies
1 parent 5614cab commit e7ba7da

File tree

140 files changed

+8121
-4125
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

140 files changed

+8121
-4125
lines changed

.github/actions/setup-node-pnpm/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ inputs:
1414
pnpm-version:
1515
description: pnpm version
1616
required: false
17-
default: '10.26.1'
17+
default: '10.26.2'
1818
working-directory:
1919
description: Working directory for the project
2020
required: true

.github/agents/full-stack-developer.agent.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ You are an expert Full Stack Developer specializing in the Learnix stack: **Reac
4141
- **Build**: Vite 7.
4242
- **Styling**: Tailwind CSS v4 (CSS-first configuration).
4343
- **State/Data**: TanStack Query v5.
44-
- **UI Library**: Shadcn UI.
4544
- **Testing**: Vitest.
4645
- **Deployment**: Vercel (static hosting).
4746
- **Reference**: Follow `.github/instructions/frontend.instructions.md`.

.github/instructions/frontend.instructions.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ applyTo: '**/*.{tsx,jsx,ts,js,css}'
3232

3333
1. **CSS-First**: Use the new CSS-first configuration approach.
3434
2. **Utility-First**: Prefer utility classes over custom CSS.
35-
3. **Shadcn UI**: Use Shadcn UI components as the base for the design system. Customize via `tailwind.config.js` (or CSS variables in v4).
36-
4. **Responsive**: Use mobile-first responsive design (`sm:`, `md:`, `lg:`).
35+
3. **Responsive**: Use mobile-first responsive design (`sm:`, `md:`, `lg:`).
3736

3837
## Accessibility (A11y)
3938

.github/prompts/generate-commit.prompt.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ You are a Git expert. Please analyze the staged changes and generate a well-stru
4343
| `dashboard` | Dashboard module |
4444
| `db` | Database/TypeORM changes |
4545
| `api` | API endpoints |
46-
| `ui` | UI components (Shadcn, Tailwind) |
46+
| `ui` | UI components (Tailwind) |
4747
| `deps` | Dependencies |
4848
| `config` | Configuration files |
4949
| `docker` | Docker/containerization |

.github/workflows/security.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ jobs:
9090
- name: Setup pnpm
9191
uses: pnpm/action-setup@v4
9292
with:
93-
version: 10.26.1
93+
version: 10.26.2
9494

9595
- name: Audit ${{ matrix.project }}
9696
working-directory: ${{ matrix.project }}

.prettierrc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
{
22
"singleQuote": true,
33
"trailingComma": "all",
4-
"tabWidth": 2,
54
"semi": true,
5+
"tabWidth": 2,
66
"printWidth": 80,
77
"endOfLine": "lf",
88
"arrowParens": "always",
99
"bracketSpacing": true,
10-
"jsxSingleQuote": false
10+
"proseWrap": "preserve",
11+
"htmlWhitespaceSensitivity": "css",
12+
"embeddedLanguageFormatting": "auto"
1113
}

README.md

Lines changed: 79 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,26 @@
11
# Learnix
22

3-
Online learning platform built with React, NestJS, and Turborepo.
3+
Online learning platform built with React 19, NestJS 11, and Turborepo.
4+
5+
## Project Status
6+
7+
**Final Release (Week 5)** - Feature Complete
8+
9+
- **Auth**: Login, Signup, Google OAuth, Role-based Access (Guest/Student/Instructor/Admin)
10+
- **Guest**: Browse, Search, Filter, Sort, Course Details (Locked Content)
11+
- **Student**: Dashboard, Enrollment, Lesson Viewer (Text/Video), Progress Tracking, Instant Quizzes
12+
- **Instructor**: Dashboard, Course/Lesson Management, Manual & AI-Generated Quizzes
13+
- **Admin**: User Management, Course Moderation, System Statistics
14+
- **Advanced**: Embedded IDE (Python/JavaScript) for coding lessons
415

516
## App URL
617

7-
- Github Repo: https://github.com/PhuocHoan/Learnix
8-
- Vercel: https://learnix-teal.vercel.app
18+
- **Github Repo**: <https://github.com/PhuocHoan/Learnix>
19+
- **Vercel**: <https://learnix-teal.vercel.app>
920

1021
## Structure
1122

12-
```
23+
```text
1324
apps/web/ # React + Vite frontend
1425
apps/api/ # NestJS backend
1526
e2e/ # Playwright tests
@@ -18,39 +29,84 @@ api/ # Vercel serverless adapter
1829

1930
## Quick Start
2031

32+
### Prerequisites
33+
34+
- Node.js >= 22
35+
- pnpm >= 10
36+
- Docker (for database)
37+
38+
### Setup
39+
40+
1. **Install Dependencies**
41+
42+
```bash
43+
pnpm install
44+
```
45+
46+
2. **Environment Variables**
47+
Copy `.env.example` to `.env` in `apps/web` and `apps/api`.
48+
49+
```bash
50+
cp apps/web/.env.example apps/web/.env
51+
cp apps/api/.env.example apps/api/.env
52+
```
53+
54+
3. **Start Database**
55+
56+
```bash
57+
make db
58+
```
59+
60+
4. **Start Development Servers**
61+
62+
```bash
63+
make dev
64+
# Web: http://localhost:5173
65+
# API: http://localhost:3000
66+
```
67+
68+
## Quality Gates & Testing
69+
70+
This project enforces strict quality gates. All checks must pass with zero errors and zero warnings.
71+
2172
```bash
22-
pnpm install # Install dependencies
23-
make db # Start PostgreSQL
24-
pnpm dev # Start dev servers (web:5173, api:3000)
73+
# Run all pre-commit checks (Format, Lint, Typecheck, Unit Tests)
74+
make pre
75+
76+
# Run End-to-End Tests (Playwright)
77+
make e2e
78+
79+
# Build all packages
80+
make build
2581
```
2682

27-
## Scripts
83+
### Individual Commands
2884

2985
```bash
30-
pnpm dev # Development
31-
pnpm build # Build all
32-
pnpm test # Unit tests
33-
pnpm test:e2e # E2E tests
34-
pnpm lint # Lint
35-
pnpm typecheck # Type check
36-
pnpm precommit # Full checks
86+
pnpm dev # Development mode
87+
pnpm build # Build for production
88+
pnpm test # Unit/Integration tests (Vitest/Jest)
89+
pnpm test:e2e # E2E tests (Playwright)
90+
pnpm lint # Lint (ESLint)
91+
pnpm typecheck # TypeScript check
92+
pnpm format # Formatter (Prettier)
3793
```
3894

95+
## Deployment
96+
97+
- **Frontend**: Automatically deployed to Vercel on push to `main`.
98+
- **Backend**: Deployed as Serverless Functions on Vercel.
99+
- **Database**: Uses Aiven Cloud PostgreSQL.
100+
39101
## Tech Stack
40102

41103
| Frontend | Backend | DevOps |
42104
| -------------- | ----------------------- | -------------- |
43105
| React 19 | NestJS 11 | Turborepo 2.6 |
44106
| Vite 7 | TypeORM + PostgreSQL | GitHub Actions |
45107
| TailwindCSS 4 | Passport.js (JWT/OAuth) | Playwright |
46-
| TanStack Query | Cloudinary | Vercel |
47-
48-
## Environment
49-
50-
Copy `.env.example` to `.env` in each app:
51-
52-
- `apps/web/.env` - Frontend config
53-
- `apps/api/.env` - Backend config (DB, JWT, OAuth, etc.)
108+
| TanStack Query | Gemini AI (Quizzes) | Vercel |
109+
| CodeMirror 6 | Piston API (IDE) | Docker |
54110

55111
## License
56112

0 commit comments

Comments
 (0)