next-competition-backend 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -0
- package/package.json +17 -1
package/README.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# This serves as the backend for competition / events related NEXT.js based website
|
|
2
|
+
|
|
3
|
+
## Installation
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
npx @troll321/next-competition-backend
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Guide on Integrating
|
|
10
|
+
|
|
11
|
+
1. Install and configure **`.env`**
|
|
12
|
+
|
|
13
|
+
2. Configure **HTML email template** on `src/api/utils/sendEmail.ts`
|
|
14
|
+
|
|
15
|
+
3. **Build FE** under `app/(app)` folder
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
### Template REPO
|
|
20
|
+
|
|
21
|
+
https://github.com/Troll321/next-competition-backend-template
|
|
22
|
+
|
|
23
|
+
### Feature
|
|
24
|
+
|
|
25
|
+
- Verifying and reviewing
|
|
26
|
+
- File upload and payment
|
|
27
|
+
- Email
|
|
28
|
+
- Admin panel (for user managing and reviewing)
|
|
29
|
+
- Submission with level (e.g. preliminary, semifinal, ...)
|
|
30
|
+
- Extensible (could be extended to include new integration as wished)
|
|
31
|
+
- Flexible (could meet all of your constraints need)
|
|
32
|
+
- Customizable (easily customized from admin panel)
|
|
33
|
+
- Prebuilt FE implementation as example (`src/components/functional`)
|
|
34
|
+
|
|
35
|
+
### Dependencies
|
|
36
|
+
|
|
37
|
+
- **3rd party integration**: Auth0, MongoDB, Supabase (PostgreSQL + Storage), Google Recaptcha, Google OAuth, Google SMTP, Payment
|
|
38
|
+
- **Extendable dependency**: Payment and Storage. By default this use IDRX and Supabase Storage
|
|
39
|
+
- **DO NOT CHANGE**: Auth0\*, MongoDB, and PostgreSQL (this is crucial for app)
|
|
40
|
+
- **On production**: Set rate limiting on domain hosting and set .env + 3rd party integration
|
|
41
|
+
|
|
42
|
+
\*Auth0 is crucial because by default the access control is based on Auth0 middleware. \
|
|
43
|
+
\*\*Key is based on email, thus Auth0 configured login method should always require email
|
|
44
|
+
|
|
45
|
+
#### Notes
|
|
46
|
+
|
|
47
|
+
- _Reserved path_: `/api/*`, `/app_api/*`, `/admin/*`, `/auth/*` should **NOT** be used.
|
|
48
|
+
- Set a few dummy data on the admin and see changes, by default the `/playground/integrated` assumes dummy data verifiable named: `profile` and `tim_paper` and submittable named: `paper_submission` (this is not mandatory)
|
|
49
|
+
- `profile` verifiable is created on login (see `src/api/authentication/loginHandler.ts`). \
|
|
50
|
+
This could be disabled or changed
|
|
51
|
+
- Implement custom `StorageAdapter` or `PaymentAdapter` class and add to adapters array `src/api/payment/server.ts` or `src/api/upload/server.ts`
|
|
52
|
+
- See `/agents` for further inquiry
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
License: https://www.gnu.org/licenses/gpl-3.0.en.html
|
package/package.json
CHANGED
|
@@ -1,10 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "next-competition-backend",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Setup basic BE for Next JS based competition website",
|
|
5
5
|
"scripts": {},
|
|
6
6
|
"author": "Troll321",
|
|
7
7
|
"license": "ISC",
|
|
8
|
+
"homepage": "https://github.com/Troll321/next-competition-backend",
|
|
9
|
+
"repository": {
|
|
10
|
+
"url": "https://github.com/Troll321/next-competition-backend"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"typescript",
|
|
14
|
+
"javascript",
|
|
15
|
+
"competition",
|
|
16
|
+
"backend",
|
|
17
|
+
"nextjs",
|
|
18
|
+
"next",
|
|
19
|
+
"template",
|
|
20
|
+
"event",
|
|
21
|
+
"events",
|
|
22
|
+
"website"
|
|
23
|
+
],
|
|
8
24
|
"bin": {
|
|
9
25
|
"next-competition-backend": "setup.js"
|
|
10
26
|
},
|