Skip to content

Commit 6429fd3

Browse files
committed
init
1 parent 0373590 commit 6429fd3

File tree

223 files changed

+38915
-0
lines changed

Some content is hidden

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

223 files changed

+38915
-0
lines changed

.eslintrc.json

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"extends": "next/core-web-vitals"
3+
}

README.md

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Club Management App
2+
3+
This is a club management app built using Next.js, ShadCN-UI, Radix-UI, Tan-Stack, Next-Auth and MongoDB
4+
5+
## Roles
6+
We are following a role based authentication.
7+
There are three roles: **user, admin and core.**
8+
9+
**User** are the members of the club, who work under the cabinet.
10+
**Admin** are the coleads/leads of the club, who work under the core.
11+
**Core** are the super admins, they have access to most of the website.
12+
13+
A **core member, or an admin can assign task to user, and validate it upon completion**.
14+
15+
16+
17+
18+
As you can see, there are 3 tables:
19+
**assigned table** is for viewing the assigned tasks,
20+
**completed table** is for viewing the completed tasks,
21+
**approved table** is for viewing the approved tasks,
22+
See the below example to know how it works.
23+
24+
## Example
25+
### Admin:
26+
![Admin](public/admin_table.png)
27+
28+
Say a cabinet member wants to assign a **task**
29+
he/she will fill this form below
30+
31+
![Forms](public/admin_assign_task.png)
32+
33+
After clicking submit, the task gets assigned to user, so in the **admin and user side 'assign table' gets populated**.
34+
35+
36+
37+
### Now user side:
38+
![User](public/user_home.png)
39+
40+
41+
### The user will see the task in **assign table** and clicks submit task
42+
he/she will view a popover, which asks for **Proof of Work**, i.e., a proof that he/she has completed the task
43+
44+
![POW](public/user_submit_task.png)
45+
46+
Upon submitting the task, the **admin and user side, the 'completed table' gets populated**
47+
### Admin side:
48+
![admin](public/admin_completed_task.png)
49+
50+
51+
### So now the admin will click **approve task** , a popover will appear which displays the **Proof of Work** entered by the user, upon satisfaction the admin will approve the task
52+
![admin](public/admin_approve_task_dialog.png)
53+
54+
### Now in the admin and user side, the **approved table** gets populated.
55+
![admin](public/admin_approved_task_table.png)
56+
Thats the end!
57+
58+
59+

components.json

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"$schema": "https://ui.shadcn.com/schema.json",
3+
"style": "default",
4+
"rsc": true,
5+
"tsx": true,
6+
"tailwind": {
7+
"config": "tailwind.config.js",
8+
"css": "src/app/globals.css",
9+
"baseColor": "slate",
10+
"cssVariables": true
11+
},
12+
"aliases": {
13+
"components": "@/components",
14+
"utils": "@/lib/utils"
15+
}
16+
}

next-env.d.ts

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/// <reference types="next" />
2+
/// <reference types="next/image-types/global" />
3+
4+
// NOTE: This file should not be edited
5+
// see https://nextjs.org/docs/basic-features/typescript for more information.

next.config.js

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/** @type {import('next').NextConfig} */
2+
module.exports = {
3+
4+
};
5+

0 commit comments

Comments
 (0)