Skip to content

Commit 6f088df

Browse files
Release v1.0.12 (#451)
* feat(svg) add icons PHP & Laravel (#447) * (SP: 1) [SHOP] make cart provider capability env reads runtime-safe * (SP: 1) [SHOP] validate STRIPE_MODE at runtime in stripe env helper * (SP: 2) [Frontend] Add logo icons svg, styles & refactoring (#450) * feat(categories): add php/laravel/csharp/dotnet styles and refactor category styles via registry * fix(types): preserve category registry slug literals and normalize stats k-format * docs(files): update documentation * chore(release): bump frontend to v1.0.12 and update changelog --------- Co-authored-by: liudmylasovetovs <milkaegik@gmail.com>
1 parent 2edb4d1 commit 6f088df

42 files changed

Lines changed: 635 additions & 18575 deletions

Some content is hidden

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

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,3 +1026,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
10261026
- Fixed stale test helper import (`TEST_LEGAL_CONSENT`) by switching to runtime consent factory generation
10271027
- Fixed OAuth build/runtime fragility by lazy-loading provider env usage
10281028
- Fixed shop/runtime regressions around env delivery and SSR safety on Netlify develop
1029+
1030+
## [1.0.12] - 2026-04-23
1031+
1032+
### Added
1033+
1034+
- New category visual support:
1035+
- Added PHP, Laravel, C#, and .NET category styles and SVG icon mapping
1036+
- Introduced centralized `categoryRegistry` as a single source of truth for category metadata and style config
1037+
1038+
### Changed
1039+
1040+
- Q&A / Quiz category architecture:
1041+
- Refactored `categoryData` and `categoryTabStyles` generation to use shared registry-driven definitions
1042+
- Preserved existing style/data APIs (`categoryData`, `categoryTabStyles`, `getCategoryTabStyle`) for compatibility across pages
1043+
- About page social metric:
1044+
- Updated LinkedIn followers fallback target from `1.8k+` to `2k+`
1045+
- Normalized compact-number formatting so whole thousands render as `2k+` (without `.0`)
1046+
- Docs and project presentation:
1047+
- Refreshed README screenshots and dashboard section copy
1048+
- Updated README Blog section to reflect in-house admin workflow (not Sanity CMS)
1049+
1050+
### Fixed
1051+
1052+
- Shop cart SSR/runtime capability checks:
1053+
- Restored fail-closed cart provider resolution behavior to prevent SSR crashes when unrelated env is missing
1054+
- Migrated Stripe/Monobank cart capability env reads to runtime-safe server env access for Netlify
1055+
- Category typing robustness:
1056+
- Preserved literal slug/title types in `categoryRegistry` factory to avoid widening to `string`
1057+
- UI polish:
1058+
- Brightened Django category accent color for better readability on dark theme

README.md

Lines changed: 19 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,10 @@
1-
# DevLovers
2-
3-
A full-stack interview preparation platform for frontend, backend, and full-stack developers.
4-
5-
**Production:** [devlovers.net](https://devlovers.net)
6-
**Develop:** [develop.devlovers.net](https://develop-devlovers.netlify.app)
7-
[![Netlify Status](https://api.netlify.com/api/v1/badges/0d21e84e-ea55-47f0-b841-c8eb91f2c9a0/deploy-status)](https://app.netlify.com/projects/develop-devlovers/deploys)
8-
9-
## Overview
10-
11-
DevLovers helps developers prepare for technical interviews through:
12-
13-
- **Q&A Section** — Categorized interview questions (JavaScript, React, Node.js, etc.)
14-
- **Quiz System** — Timed quizzes with anti-cheat, progress tracking, and leaderboards
15-
- **Leaderboard** — Gamification with improvement-based scoring
16-
- **Blog** — Technical articles managed via Sanity CMS
17-
- **Shop** — E-commerce with Stripe payments and inventory management
18-
- **About** — Landing page with platform stats, features overview, and community info
19-
20-
Supports three languages: Ukrainian, English, Polish.
21-
22-
## Tech Stack
23-
24-
| Category | Technologies |
25-
| ---------- | ----------------------------------- |
26-
| Framework | Next.js 16, React 19, TypeScript |
27-
| Styling | Tailwind CSS v4, Framer Motion |
28-
| Database | PostgreSQL (Neon), Drizzle ORM |
29-
| Caching | Upstash Redis |
30-
| CMS | Sanity Studio, GROQ |
31-
| UI | Radix UI, Lucide Icons |
32-
| Auth | JWT (jsonwebtoken), bcryptjs, OAuth |
33-
| Payments | Stripe |
34-
| Email | Nodemailer |
35-
| i18n | next-intl |
36-
| AI | Groq SDK |
37-
| Testing | Vitest, React Testing Library |
38-
| Media | Cloudinary |
39-
| Deployment | Vercel |
40-
41-
## Project Structure
42-
43-
```
44-
devlovers.net/
45-
├── frontend/ # Next.js application
46-
│ ├── app/
47-
│ │ ├── [locale]/ # Localized pages (uk/en/pl)
48-
│ │ └── api/ # API routes
49-
│ ├── components/ # React components
50-
│ ├── db/
51-
│ │ ├── schema/ # Drizzle table definitions
52-
│ │ └── queries/ # Reusable DB queries
53-
│ ├── hooks/ # Custom React hooks
54-
│ ├── i18n/ # Internationalization config
55-
│ ├── lib/ # Utilities and business logic
56-
│ └── messages/ # Translation files (JSON)
57-
58-
└── studio/ # Sanity CMS
59-
└── schemaTypes/ # Content schemas (posts, authors)
60-
```
1+
# DevLovers Technical Interview Platform
2+
3+
> [!NOTE]
4+
>
5+
> ### Train smarter, interview stronger.
6+
>
7+
> DevLovers is a multi-language interview prep platform with curated Q&A, timed quizzes, leaderboard rankings, a developer blog, and a personal dashboard to track real learning progress.
618
629
## Main Features
6310

@@ -103,7 +50,7 @@ devlovers.net/
10350

10451
### Blog
10552

106-
- Technical articles via Sanity CMS
53+
- Technical articles via custom in-house admin panel
10754
- Category and tag filtering
10855
- Search with pagination
10956
- Multi-language content (uk/en/pl)
@@ -126,33 +73,18 @@ devlovers.net/
12673

12774
![Shop](./assets/08-screencapture.png)
12875

129-
## Getting Started
130-
131-
```bash
132-
# Install dependencies
133-
cd frontend && npm install
134-
135-
# Set up environment variables
136-
cp .env.example .env.local
137-
138-
# Run development server
139-
npm run dev
140-
141-
# Database commands
142-
npx drizzle-kit generate # Generate migrations
143-
npx drizzle-kit push # Apply migrations
144-
```
145-
146-
## Git Workflow
147-
148-
- `main` — production branch
149-
- `develop` — development branch
150-
- Feature branches: `prefix/feat/feature-name`
76+
## Dashboard
15177

152-
Task tracking via [GitHub Projects](https://github.com/DevLoversTeam/devlovers.net/projects) board.
78+
- Personal learning dashboard with progress insights
79+
- Quiz history and performance overview
80+
- Quick access to key account activity
15381

154-
## License
82+
![Dashboard](./assets/09-screencapture.png)
15583

156-
**MIT**
84+
> [!IMPORTANT]
85+
> **Contact me:** [contact@devlovers.net](mailto:contact@devlovers.net)
15786
158-
**Contact me:** [contact@devlovers.net](mailto:contact@devlovers.net)
87+
> [!TIP]
88+
> **Production:** [devlovers.net](https://devlovers.net)
89+
>
90+
> **Develop:** [develop.devlovers.net](https://develop-devlovers.netlify.app) [![Netlify Status](https://api.netlify.com/api/v1/badges/0d21e84e-ea55-47f0-b841-c8eb91f2c9a0/deploy-status)](https://app.netlify.com/projects/develop-devlovers/deploys)

assets/01-screencapture.png

13.7 KB
Loading

assets/02-screencapture.png

16.3 KB
Loading

assets/03-screencapture.png

13 KB
Loading

assets/04-screencapture.png

-55 KB
Loading

assets/05-screencapture.png

-20.4 KB
Loading

assets/06-screencapture.png

-552 KB
Loading

assets/07-screencapture.png

2.34 KB
Loading

assets/08-screencapture.png

7.48 KB
Loading

0 commit comments

Comments
 (0)