Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
183 commits
Select commit Hold shift + click to select a range
9f47663
nadhil
nadhil7 Nov 5, 2025
8dae3e7
Merge branch 'pro' of https://github.com/devxtra-community/nodejs-ins…
nadhil7 Nov 5, 2025
3bb784d
proper working
nadhil7 Nov 5, 2025
ec9da21
allowtsextentions
nadhil7 Nov 5, 2025
d0c8552
Merge branch 'pro' of https://github.com/devxtra-community/nodejs-ins…
nadhil7 Nov 5, 2025
03ad15d
Merge branch 'nadhil' into pro
nadhil7 Nov 5, 2025
7da8b76
axios interceptor
shanuvr Nov 11, 2025
52582d6
done
shamsudheens Nov 11, 2025
7a28ad0
Merge branch 'dev' into shamsudheen
shamsudheens Nov 11, 2025
c72f188
backend started
riyasTK8 Nov 11, 2025
b06cc1d
device usage
Shrijitvivek Nov 11, 2025
e20e41c
file upload
nadhil7 Nov 11, 2025
190039e
morgan added
sameerpt Nov 11, 2025
159aba8
device usage api
Shrijitvivek Nov 11, 2025
f8bd48e
package lock json
shamsudheens Nov 12, 2025
abd9b4e
Merge branch 'shamsudheen' into dev
shamsudheens Nov 12, 2025
71f4022
user agent implemented
Shrijitvivek Nov 12, 2025
8b9c106
Merge branch 'pro' into dev
nadhil7 Nov 12, 2025
e64f7b2
deleted duplicate usercontroller
Shrijitvivek Nov 12, 2025
6e3992f
before merging to shanu
shanuvr Nov 12, 2025
452a87c
changed usermodel
riyasTK8 Nov 12, 2025
1a90794
Merge branch 'riyas' into dev
riyasTK8 Nov 12, 2025
0d819df
Merge branch 'dev' of https://github.com/devxtra-community/nodejs-ins…
shanuvr Nov 12, 2025
a605082
gust user conflict solved
riyasTK8 Nov 12, 2025
05a9e8b
Merge branch 'dev' of https://github.com/devxtra-community/nodejs-ins…
shanuvr Nov 12, 2025
f71cc2b
duplicated files removed
Shrijitvivek Nov 12, 2025
930eccb
Merge branch 'dev' of https://github.com/devxtra-community/nodejs-ins…
shanuvr Nov 12, 2025
f97f4de
login validation on email corected
shanuvr Nov 11, 2025
a81c9f5
before pulling dev
shanuvr Nov 12, 2025
d9f13a3
before merging to shanu
shanuvr Nov 12, 2025
874c1ad
done
shamsudheens Nov 12, 2025
a77dfe3
package installled
shamsudheens Nov 12, 2025
2a3e6bf
Merge branch 'dev' of https://github.com/devxtra-community/nodejs-ins…
shanuvr Nov 12, 2025
a82b699
api key supabase
shamsudheens Nov 12, 2025
bb7d25b
supabase completed
sameerpt Nov 12, 2025
12339b0
Merge branch 'sameer' into dev
sameerpt Nov 12, 2025
1d901d4
upload controller
shamsudheens Nov 12, 2025
c701db5
Merge branch 'dev' into shamsudheen
shamsudheens Nov 12, 2025
48bf0ed
supabase env
sameerpt Nov 12, 2025
ad393d5
Merge branch 'dev' into shamsudheen
shamsudheens Nov 12, 2025
1b0afb6
added console for error check
shanuvr Nov 12, 2025
806b641
done
shanuvr Nov 13, 2025
2ce576a
Merge pull request #24 from devxtra-community/shanu
shanuvr Nov 13, 2025
cc7a6a5
env added
sameerpt Nov 13, 2025
9ca95d1
Merge branch 'dev' into sameer
sameerpt Nov 13, 2025
e7c1cd4
Merge pull request #26 from devxtra-community/sameer
sameerpt Nov 13, 2025
fb5ad65
test
sameerpt Nov 13, 2025
6e52d79
otp corrected
sameerpt Nov 13, 2025
2575b74
r2 bucket integrated file is uploading
shamsudheens Nov 13, 2025
0e0d603
Merge branch 'shamsudheen' into dev
shamsudheens Nov 13, 2025
f571ff6
health check
shamsudheens Nov 13, 2025
a89520a
do so many things
nadhil7 Nov 13, 2025
2733f79
profile update and logout basic
sameerpt Nov 14, 2025
17b3541
logout deleted
sameerpt Nov 14, 2025
818e233
Merge branch 'pro' into dev
nadhil7 Nov 14, 2025
2e246b0
everything
nadhil7 Nov 14, 2025
67c0fbc
env changed file is clear
shamsudheens Nov 14, 2025
1c3115a
done
nadhil7 Nov 14, 2025
bf24074
Merge branch 'dev' of https://github.com/devxtra-community/nodejs-ins…
nadhil7 Nov 14, 2025
0b521a8
slash on url r2
nadhil7 Nov 14, 2025
c9dc2a7
aligned and change routes
sameerpt Nov 14, 2025
010e7dc
merged dev into sameer with route changes
sameerpt Nov 14, 2025
ce03a22
stashing
shanuvr Nov 14, 2025
6072bc6
test
sameerpt Nov 14, 2025
d0252c7
stashing
shanuvr Nov 14, 2025
48d8a78
on pro
nadhil7 Nov 14, 2025
186478a
Merge branch 'dev' of https://github.com/devxtra-community/nodejs-ins…
nadhil7 Nov 14, 2025
cb34fda
Merge branch 'dev' of https://github.com/devxtra-community/nodejs-ins…
shanuvr Nov 14, 2025
19a7b98
after merging from dev
shanuvr Nov 14, 2025
ba00c0c
stored refresh token in db
shanuvr Nov 15, 2025
04b4908
logout implemented
shanuvr Nov 15, 2025
c685a7f
change password
sameerpt Nov 15, 2025
98ed1df
Merge branch 'dev' of https://github.com/devxtra-community/nodejs-ins…
shanuvr Nov 15, 2025
5c38e77
Merge branch 'dev' into shanu
shanuvr Nov 15, 2025
4de3951
Merge pull request #27 from devxtra-community/shanu
shanuvr Nov 15, 2025
e5477e2
mcp integrated
shamsudheens Nov 15, 2025
aab68b8
Merge branch 'dev' into shamsudheen
shamsudheens Nov 15, 2025
bd83f4d
cheking the user logged
nadhil7 Nov 15, 2025
3f4b28e
password changed
sameerpt Nov 17, 2025
51923a7
merged sameer
shanuvr Nov 17, 2025
3dd2514
fileUpload middleware
nadhil7 Nov 17, 2025
879e6c8
ai failsintegration
shamsudheens Nov 18, 2025
96616e6
rate limited setup successfully
sameerpt Nov 18, 2025
f2f789f
done middleware
nadhil7 Nov 18, 2025
6842a6d
using functions upload
shamsudheens Nov 18, 2025
0cd9081
chart and insights done using javscript functions
shamsudheens Nov 18, 2025
bbac8b6
everything done chat and chart
shamsudheens Nov 19, 2025
1a649eb
test
sameerpt Nov 19, 2025
a97ea4d
Merge branch 'dev' of https://github.com/devxtra-community/nodejs-ins…
nadhil7 Nov 19, 2025
5fa509c
before pulliing
shanuvr Nov 19, 2025
6b931a6
Merge branch 'dev' into pro
nadhil7 Nov 19, 2025
2fe3f37
beofe aborting
shanuvr Nov 19, 2025
f5b73c3
Merge branch 'dev' into shanu
shanuvr Nov 19, 2025
886294f
merging to dev
shanuvr Nov 19, 2025
6114ca7
Merge pull request #31 from devxtra-community/shanu
shanuvr Nov 19, 2025
75b2a00
done
nadhil7 Nov 19, 2025
3cd60b9
forgot password
shanuvr Nov 20, 2025
752954c
Merge branch 'dev' of https://github.com/devxtra-community/nodejs-ins…
nadhil7 Nov 20, 2025
7db8ef7
Merge branch 'pro' into dev
nadhil7 Nov 20, 2025
6e4a8f8
done
shamsudheens Nov 20, 2025
6d69808
dev to sameer
sameerpt Nov 20, 2025
51cad4b
logged devices
shanuvr Nov 20, 2025
12ec363
google authentication is secured
sameerpt Nov 21, 2025
e11032d
yet to complete thte logged in devices feature
shanuvr Nov 21, 2025
623600f
Merge pull request #39 from devxtra-community/sameer
sameerpt Nov 21, 2025
e09f66d
merged dev
shanuvr Nov 21, 2025
e8fe40b
Merge pull request #40 from devxtra-community/shanu
shanuvr Nov 21, 2025
893be6a
new api keys
nadhil7 Nov 21, 2025
8caed33
test
sameerpt Nov 21, 2025
18ba762
line chart added
shamsudheens Nov 21, 2025
7ad2a49
Merge branch 'dev' into shamsudheen2
shamsudheens Nov 21, 2025
f6dc985
comments removed from user route
sameerpt Nov 21, 2025
7ceda0e
logged in devives feature
shanuvr Nov 21, 2025
3e3858a
Merge branch 'dev' into sameer
sameerpt Nov 21, 2025
fa09845
fixed logged devices for googleauth
shanuvr Nov 21, 2025
49bf0ad
Merge branch 'dev' into sameer
sameerpt Nov 21, 2025
b134f71
current device on google auth
shanuvr Nov 21, 2025
28ece72
Merge pull request #41 from devxtra-community/shanu
shanuvr Nov 21, 2025
2156c32
userId completedd
nadhil7 Nov 21, 2025
85611d3
Merge branch 'dev' of https://github.com/devxtra-community/nodejs-ins…
nadhil7 Nov 21, 2025
ac030f1
everything working fine now
shamsudheens Nov 21, 2025
c437e88
before pulling dev after chat issue
shanuvr Nov 21, 2025
c353498
working dev
shanuvr Nov 21, 2025
7645e2b
Merge branch 'dev' into sameer
sameerpt Nov 21, 2025
1b55e3b
while updating to mcp
nadhil7 Nov 22, 2025
bc526d2
gemini api key
nadhil7 Nov 22, 2025
ff478f2
swagger added
sameerpt Nov 22, 2025
67ff79d
jwt expiered
nadhil7 Nov 22, 2025
1e42be5
access clearing in cookie
sameerpt Nov 22, 2025
e8a6d99
full working
nadhil7 Nov 22, 2025
b96f028
all done
nadhil7 Nov 22, 2025
1525b9c
continue
nadhil7 Nov 22, 2025
48ff9e1
Merge branch 'shamsudheen' into pro
nadhil7 Nov 22, 2025
b208605
done
nadhil7 Nov 22, 2025
9052fe6
Merge branch 'dev' into pro
nadhil7 Nov 22, 2025
e633fdf
error saved
nadhil7 Nov 22, 2025
f527cb7
full working
nadhil7 Nov 22, 2025
631f595
swagger added
sameerpt Nov 23, 2025
07c25f2
Merge branch 'dev' of https://github.com/devxtra-community/nodejs-ins…
shanuvr Nov 24, 2025
89645a7
add swagger to userRoute
sameerpt Nov 24, 2025
6b4ddc6
merge dev into sameer
sameerpt Nov 24, 2025
2381e55
splited the code into different modules
shanuvr Nov 24, 2025
ad8c28a
200 line rule applied
sameerpt Nov 24, 2025
2c1ba93
Merge branch 'dev' into sameer
sameerpt Nov 24, 2025
8f29e83
test
sameerpt Nov 24, 2025
faf677f
Merge branch 'dev' of https://github.com/devxtra-community/nodejs-ins…
shanuvr Nov 24, 2025
8f6a68e
code splited into modules
shanuvr Nov 24, 2025
2075e23
test
sameerpt Nov 24, 2025
1e26501
auth is 200 lines of code
sameerpt Nov 24, 2025
2978ec3
Merge branch 'dev' into sameer
sameerpt Nov 24, 2025
f349bd9
test
sameerpt Nov 24, 2025
1cb26fd
modified verify token
shanuvr Nov 24, 2025
1aa9d3b
reversed verify token
shanuvr Nov 24, 2025
404724e
before switching merge in verifytoken
shanuvr Nov 24, 2025
025ec51
fixed verify token
shanuvr Nov 24, 2025
9b0d142
Merge branch 'dev' into shanu
shanuvr Nov 24, 2025
a8ce054
verify token
shanuvr Nov 24, 2025
3f4a754
cookie setted
sameerpt Nov 24, 2025
c33d356
Merge branch 'dev' into sameer
sameerpt Nov 24, 2025
9689e40
clear cookie in logout
shanuvr Nov 24, 2025
1d405fb
modification for the comments
nadhil7 Nov 25, 2025
9405049
test
sameerpt Nov 25, 2025
98fd534
cookie clearing
nadhil7 Nov 25, 2025
8937afa
Merge branch 'dev' into pro
nadhil7 Nov 25, 2025
07ef9e8
auth router
nadhil7 Nov 25, 2025
f2f886b
before
nadhil7 Nov 25, 2025
63147cd
test
sameerpt Nov 25, 2025
af6e563
test
sameerpt Nov 25, 2025
8288f80
Merge branch 'dev' of https://github.com/devxtra-community/nodejs-ins…
sameerpt Nov 25, 2025
f266f9a
fallback insights updated
shamsudheens Nov 25, 2025
a06bfa2
test
sameerpt Nov 26, 2025
e642c1f
Merge branch 'dev' into sameer
sameerpt Nov 26, 2025
4e756e5
with session schema history also implemented
shamsudheens Nov 26, 2025
f3c205d
chat fixed
shamsudheens Nov 27, 2025
24d327d
force pushing
shamsudheens Nov 27, 2025
2472e9d
chat session fixed
shamsudheens Nov 27, 2025
49ffbe6
when the user upgraded plan push them to login after login push them…
sameerpt Nov 28, 2025
544c2df
now everything updated refresh chart chat session
shamsudheens Nov 28, 2025
22e07fa
merge shamsudheen to sameer
sameerpt Nov 28, 2025
c9119ae
guest user to real user update
nadhil7 Nov 28, 2025
28cf09c
guestuser
nadhil7 Nov 28, 2025
fb3e6f5
access token fail solved
shamsudheens Nov 28, 2025
6f2639b
Merge branch 'shamsudheen' into sameer
sameerpt Nov 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion .env
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
mongo_uri=`mongodb+srv://nadhunadhil33429_db_user:Admin123shanu@cluster1.noy1nfg.mongodb.net/Instaviz?retryWrites=true&w=majority&appName=Cluster1`
mongo_uri=mongodb+srv://nadhunadhil33429_db_user:Admin123shanu@cluster1.noy1nfg.mongodb.net/Instaviz?retryWrites=true&w=majority&appName=Cluster1
STRIPE_SECRET_KEY=sk_test_51SQ1dLIVdMwHNhBBbCZWVVfYjIuqQocBHae6gnVS2kDwBY3kKEByP6xWhES6AAKA30VZi5SXZxNpfKMCDLOaMa8a00yKxvydpG
CLIENT_URL=http://localhost:3000
PORT=5000
Expand All @@ -14,3 +14,19 @@ REFRESH_SECRET = E72b1f2a9e7c8c1f4e28e5c948b0f21aebda10a4a18e9d3e7e1a8c3e5e4b5a

EMAIL = shanu.work.org@gmail.com
EMAIL_PASS = lhubgdnbvmfrzjcj


# supabase key and secret

SUPABASE_URL=https://ymhpjbqatqaqarydzijp.supabase.co
SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InltaHBqYnFhdHFhcWFyeWR6aWpwIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjI4NDkzNTksImV4cCI6MjA3ODQyNTM1OX0.O5HReAQB7nK5YZN9si3-ybwvPCOPwUAg-sM2Uw-pKjo
MAX_FILE_SIZE = 50 * 1024 * 1024;
GEMINI_API_KEY =AIzaSyBkUAGwR5nE36CFk1cGPw6bOlSl4OQK1Ro,AIzaSyD_UUtu-zR4CUwOB3Z7xyLMmcl1ooiPxJ8,AIzaSyBnhzklFEmwqi1YkmrNqVSKrZTO9ljUJo4,AIzaSyBza-e377zkiwVi8ZgS6Jgx9sGfMhp0i6o,AIzaSyDD1UTnDWTQGcX-Mtxj9xuVHNkXL3dG-sY,AIzaSyDxdv7foLvaFLRG3qTVGqENMwuXoZzuKlo,AIzaSyD8Vp6w5NMOqlNrMLUDdTXmAwx_28jYaVo,AIzaSyBRJBYaiLfr5YN3hqCBbD_aGUnOgkBZIOU
# GEMINI_API_LIGHT_KEY =AIzaSyC_YEplnqKTokFHMkL0QxQDd98M05JGzG8
GEMINI_API_LIGHT_KEY =AIzaSyBbSe9bzD7wbK5utG5TkWvIemYt_QMoQiQ

R2_ACCOUNT_ID=e6a357e38f300a67ae9df3c103d060e5
R2_ACCESS_KEY_ID=c7d19730f99bbbebe4158c94089efd4a
R2_SECRET_ACCESS_KEY=5e79e90773faa628cd5409ebd9835ffd140bca3e8b59002085e3a634e94613da
R2_BUCKET_NAME=instaviz
R2_PUBLIC_URL=https://pub-e11ccec3e5ab495796b8d807084b93ca.r2.dev
2,512 changes: 2,265 additions & 247 deletions package-lock.json

Large diffs are not rendered by default.

19 changes: 18 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,32 +14,49 @@
"author": "",
"license": "ISC",
"dependencies": {
"@aws-sdk/client-s3": "^3.930.0",
"@google/generative-ai": "^0.24.1",
"@modelcontextprotocol/sdk": "^1.22.0",
"@supabase/supabase-js": "^2.81.0",
"@types/bcrypt": "^6.0.0",
"@types/jsonwebtoken": "^9.0.10",
"@types/morgan": "^1.9.10",
"@types/passport": "^1.0.17",
"@types/passport-google-oauth20": "^2.0.17",
"bcrypt": "^6.0.0",
"body-parser": "^2.2.0",
"cookie-parser": "^1.4.7",
"cors": "^2.8.5",
"csv-parser": "^3.2.0",
"dotenv": "^17.2.3",
"express": "^5.1.0",
"express-rate-limit": "^8.2.1",
"joi": "^18.0.1",
"jsonwebtoken": "^9.0.2",
"mongoose": "^8.19.1",
"morgan": "^1.10.1",
"multer": "^2.0.2",
"node-fetch": "^3.3.2",
"nodemailer": "^7.0.10",
"passport": "^0.7.0",
"passport-google-oauth20": "^2.0.0",
"stripe": "^19.2.1"
"stripe": "^19.2.1",
"swagger-jsdoc": "^6.2.8",
"swagger-ui-express": "^5.0.1",
"yamljs": "^0.3.0"
},
"devDependencies": {
"@types/cookie-parser": "^1.4.10",
"@types/cors": "^2.8.19",
"@types/express": "^5.0.5",
"@types/mongoose": "^5.11.96",
"@types/multer": "^2.0.0",
"@types/node": "^24.10.0",
"@types/nodemailer": "^7.0.3",
"@types/swagger-jsdoc": "^6.0.4",
"@types/swagger-ui-express": "^4.1.8",
"nodemon": "^3.1.10",
"prettier": "^3.6.2",
"ts-node": "^10.9.2",
"typescript": "^5.9.3"
}
Expand Down
43 changes: 43 additions & 0 deletions prettier.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/** @type {import("prettier").Config} */
const config = {
// Format options
printWidth: 100,
tabWidth: 2,
useTabs: false,
semi: true,
singleQuote: false,
trailingComma: 'all',
bracketSpacing: true,
bracketSameLine: false,
arrowParens: 'avoid',
htmlWhitespaceSensitivity: 'css',
endOfLine: 'lf',
proseWrap: 'always',
quoteProps: 'as-needed',
embeddedLanguageFormatting: 'auto',

// Overrides for specific file types
overrides: [
{
files: ['*.json', '*.json5', '*.yaml', '*.yml'],
options: {
tabWidth: 2,
singleQuote: false,
trailingComma: 'none',
},
},
{
files: ['*.md', '*.mdx'],
options: {
printWidth: 150,
proseWrap: 'preserve',
},
},
{
files: ['*.ts', '*.tsx'],
options: {},
},
],
};

export default config;
16 changes: 16 additions & 0 deletions src/admincontroller/insightsController.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { Response, Request} from "express";
import { deviceModel } from "../model/admin/insights/deviceModel";

export const getUserDevices = async (req: Request, res: Response) => {
try {
const user = (req as any).user; // get logged user-info from request

// find all devices from db where userId matches logged in user
const devices = await deviceModel
.find({ userId: user._id })
.sort({ createdAt: -1 });
res.json({devices})
} catch (err) {
res.status(500).json({ message: "Error Fetching Devices", error: err });
}
};
102 changes: 102 additions & 0 deletions src/admincontroller/userController.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
import { Request,Response } from "express";
import userModel from "../model/user";//called userdatabase
import guestModel from "../model/guest";


//function for get allloged users count to admindashboard graph
export const loggedusers = async(req:Request,res:Response)=>{

try{

const fetcchallusers = await userModel.find().countDocuments()
res.status(200).json({message:"user count taken",fetcchallusers,success:true})

}
catch{

res.status(500).json({message:"user not found"})
}}



//function for get new logged users count per month
export const getNewUsersPerMonth = async (req: Request, res: Response) => {
try {
const usersPerMonth = await userModel.aggregate([
{
$group: {
_id: {
year: { $year: "$createdAt" },
month: { $month: "$createdAt" }
},
count: { $sum: 1 }
}
},
{
$sort: {
"_id.year": 1,
"_id.month": 1
}
}
]);
res.status(200).json({message: "new users per month count get successfully",success: true,usersPerMonth});
} catch {

res.status(500).json({message:"new user per month count not get"})

}
};




//function for add guestusers
export const addGustuser = async(req:Request,res:Response)=>{
try {
const newGuest = await guestModel.create({
token: 12345,
IP_address: 19216801
});
res.status(200).json({message:"guest user added successfully",addGustuser,success:true})
}

catch{

res.status(500).json({message:"guest user not added some error"})
}
}


//function for get full gustusers count
export const fetchAllgustusers = async(req:Request,res:Response)=>{
try{
const getAllgustusers = await guestModel.find().countDocuments()
res.status(200).json({message:"all gust users fetched successfully",allgustusers:getAllgustusers,success:true})

}
catch{

}
}



//function for get all users count
export const getAllusers = async (req: Request, res: Response) => {
try {
const loggedCount = await userModel.countDocuments();
const guestCount = await guestModel.countDocuments();

const totalCount = loggedCount + guestCount;

res.status(200).json({
message: "All users fetched successfully",
totalCount,
loggedCount,
guestCount,
success: true,
});
} catch (err) {
res.status(500).json({ message: "failed to fetch all users", error: err });
}
};
Loading