Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
23 changes: 23 additions & 0 deletions teams/double-door-refrigerator/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
6 changes: 6 additions & 0 deletions teams/double-door-refrigerator/Git_Update.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Set-Location $PSScriptRoot
$msg = Read-Host "Enter commit message"
git pull origin main
git add .
git commit -m "$msg"
git push
67 changes: 67 additions & 0 deletions teams/double-door-refrigerator/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# CompareX

## Team Name

Double Door Refrigerator

## Team Members

- Srujan Tagalpallewar (GitHub: @SrujanTag)
- Kartikey Chaudhary (GitHub: @kartik-dvst)
- Harsh Agrawal (GitHub: @harshagarwal4761)
- Shambhavi Verma (GitHub: @ShambhaviVerma775)
- Aviral Sonker (GitHub: @AviralAv03)

---

## Idea Chosen

Custom: CompareX — Interactive Review & Comparison Platform

---

## Problem Statement

Users often struggle to compare developer tools and PC hardware due to scattered, biased, and static information across multiple platforms. There is no unified, interactive system that allows quick, personalized, and transparent comparisons.

---

## Tech Stack

- React.js
- Node.js
- Express.js
- JavaScript
- (Optional: MongoDB / JSON-based storage)

---

## Implementation Details

CompareX is built as a full-stack web application that enables users to interactively compare tools and hardware.

### Key Features:

- 🔍 Custom comparison tables (up to 3 items)
- 🧠 Smart recommendation quiz based on user preferences
- ⭐ Transparent trust scoring system
- 💾 Saved workspaces for users
- ⚡ Quick summary cards (pros/cons)

### Architecture:

- **Frontend:** React-based dynamic UI
- **Backend:** Express server handling APIs and logic
- **Data Layer:** Structured storage for product specs, reviews, and pricing
- **Logic:** Filtering, comparison, and recommendation engine

---

## How to Run Locally

```bash
git clone https://github.com/SrujanTag/DevStakes.git
cd DevStakes/teams/double-door-refrigerator
npm install
npm start
```
245 changes: 245 additions & 0 deletions teams/double-door-refrigerator/add_data.py

Large diffs are not rendered by default.

252 changes: 252 additions & 0 deletions teams/double-door-refrigerator/add_data_enhanced.py

Large diffs are not rendered by default.

41 changes: 41 additions & 0 deletions teams/double-door-refrigerator/add_deployment_tools.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import re

with open('generate_data.js', 'r', encoding='utf-8') as f:
text = f.read()

# We will just append before `// Memory (RAM)`
deployment_tools = [
""" { id: 455, title: 'Vercel', subtitle: 'Frontend Cloud & Next.js creator', category: 'TOOLS', isNew: true, features: { Type: 'Deployment', Subscription: 'Freemium' },
specifications: { Type: 'Platform as a Service', Platform: 'Web', Support: 'Global Edge Network', License: 'Proprietary Service', Description: 'Vercel is the platform for frontend developers, providing the speed and reliability innovators need to create at the moment of inspiration.', PrimaryUseCase: 'Zero-configuration deployment for frontend frameworks and serverless functions.', Ecosystem: 'Next.js, React, Edge Functions', FreeTier: 'Hobby (Free forever for non-commercial)', ProTier: '$20/mo per user (1TB Bandwidth)', EnterpriseTier: 'Custom pricing (Enhanced Security, SLA)' },
scores: { Reliability: 99, Speed: 100, EaseOfUse: 98 },
prices: { official: { price: 'Freemium', link: 'https://vercel.com/' } }
},
{ id: 456, title: 'Netlify', subtitle: 'Connect everything. Build anywhere.', category: 'TOOLS', isNew: false, features: { Type: 'Deployment', Subscription: 'Freemium' },
specifications: { Type: 'Platform as a Service', Platform: 'Web', Support: 'Jamstack', License: 'Proprietary Service', Description: 'A unified platform that automates your code to create high-performant, easily maintainable sites and web apps.', PrimaryUseCase: 'Jamstack applications with automated edge deployments.', Ecosystem: 'Gatsby, Nuxt, Edge CDN', FreeTier: 'Starter (100GB Bandwidth, 300 build mins)', ProTier: '$19/mo per user (1TB Bandwidth)', EnterpriseTier: 'Custom pricing (99.99% Uptime SLA)' },
scores: { Reliability: 98, Speed: 97, EaseOfUse: 99 },
prices: { official: { price: 'Freemium', link: 'https://www.netlify.com/' } }
},
{ id: 457, title: 'Render', subtitle: 'Unified Cloud to build and run all your apps', category: 'TOOLS', isNew: true, features: { Type: 'Deployment', Subscription: 'Freemium' },
specifications: { Type: 'Cloud Platform', Platform: 'Web / Backend', Support: 'Docker, Node, Python', License: 'Proprietary Service', Description: 'Render is a unified cloud to build and run all your apps and websites with free TLS certificates, a global CDN, DDoS protection, private networks, and auto deploys from Git.', PrimaryUseCase: 'Deploying full-stack applications, databases, and cron jobs effortlessly.', Ecosystem: 'PostgreSQL, Redis, Web Services', FreeTier: 'Individual (Static Sites, Free Web Services spin down)', ProTier: 'Team $19/mo (Scale memory/CPU as needed)', EnterpriseTier: 'Organization (SSO, Role-based access)' },
scores: { Versatility: 95, Usability: 96, Value: 98 },
prices: { official: { price: 'Freemium', link: 'https://render.com/' } }
},
{ id: 458, title: 'Heroku', subtitle: 'Cloud application platform', category: 'TOOLS', isNew: false, features: { Type: 'Deployment', Subscription: 'Paid' },
specifications: { Type: 'Platform as a Service', Platform: 'Backend', Support: 'Polyglot', License: 'Proprietary Service', Description: 'A platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud.', PrimaryUseCase: 'Simple container-based application hosting (Dynos).', Ecosystem: 'Salesforce, Node, Ruby, Postgres', FreeTier: 'No longer available. Starts at Eco ($5)', ProTier: 'Standard Dynos ($25-$50/mo)', EnterpriseTier: 'Private Spaces (Network isolation, compliance)' },
scores: { Ecosystem: 99, Reliability: 95, Pricing: 70 },
prices: { official: { price: 'Paid Plans', link: 'https://www.heroku.com/' } }
},
{ id: 459, title: 'AWS Amplify', subtitle: 'Build extensible, full-stack web and mobile apps', category: 'TOOLS', isNew: false, features: { Type: 'Deployment', Subscription: 'Pay-as-you-go' },
specifications: { Type: 'Cloud Platform', Platform: 'Web / Mobile', Support: 'AWS Cloud', License: 'Proprietary Service', Description: 'A set of purpose-built tools and features that lets frontend web and mobile developers quickly and easily build full-stack applications on AWS.', PrimaryUseCase: 'Seamless integration of frontend code with AWS backend services (Auth, Storage, APIs).', Ecosystem: 'AWS ecosystem, React Native, Vue', FreeTier: 'Free tier limits for 12 months (1000 build mins, 15GB bandwidth)', ProTier: 'Pay-as-you-go ($0.01/build min, $0.15/GB)', EnterpriseTier: 'Part of AWS compliance, massive scale' },
scores: { Scalability: 100, Features: 96, Complexity: 85 },
prices: { official: { price: 'Pay-as-you-go', link: 'https://aws.amazon.com/amplify/' } }
}"""
]

# We want to string replace `// Memory (RAM)` with the deployment tools and `// Memory (RAM)`
new_text = text.replace(' // Memory (RAM)', deployment_tools[0] + ',\n\n // Memory (RAM)')

with open('generate_data.js', 'w', encoding='utf-8') as f:
f.write(new_text)

print(f"Added deployment tools successfully.")
13 changes: 13 additions & 0 deletions teams/double-door-refrigerator/check_google.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
const google = require('googlethis');

async function check() {
const options = { page: 0, safe: false };
console.log('--- RTX 4090 Founders ---');
let rtx = await google.image('Nvidia RTX 4090 Founders Edition front png', options);
rtx.slice(0, 15).forEach(r => console.log(r.url));

console.log('\n--- Taiga Logo ---');
let taiga = await google.image('Taiga project management logo transparent png', options);
taiga.slice(0, 5).forEach(r => console.log(r.url));
}
check();
26 changes: 26 additions & 0 deletions teams/double-door-refrigerator/final_assets.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
const fs = require('fs');

let data = fs.readFileSync('src/data.js', 'utf8');

data = data.replace(
/"title":\s*"NVIDIA RTX 4090"[\s\S]*?"image":\s*"[^"]+"/g,
match => match.replace(/"image":\s*"[^"]+"/, '"image": "https://i.pcmag.com/imagery/reviews/02NoiKaEFBsK5zddvNd2FFz-14.jpg"')
);

data = data.replace(
/"title":\s*"Samsung Magician"[\s\S]*?"image":\s*"[^"]+"/g,
match => match.replace(/"image":\s*"[^"]+"/, '"image": "/images/magician.png"')
);

data = data.replace(
/"title":\s*"Taiga"[\s\S]*?"image":\s*"[^"]+"/g,
match => match.replace(/"image":\s*"[^"]+"/, '"image": "https://raw.githubusercontent.com/taigaio/taiga-design/master/Logo/taiga_monocromo_blanco.png"')
);

data = data.replace(
/"title":\s*"SonarQube \(Community\)"[\s\S]*?"image":\s*"[^"]+"/g,
match => match.replace(/"image":\s*"[^"]+"/, '"image": "/images/sonarqube.png"')
);

fs.writeFileSync('src/data.js', data);
console.log('Fixed completely!');
36 changes: 36 additions & 0 deletions teams/double-door-refrigerator/fix.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
const fs = require('fs');

const mappings = {
'samsung magician': 'https://play-lh.googleusercontent.com/AZCOwJR9dXFjVL_YqnEhePpzlEyhsR95CGjkdvwzewGiQCayR29RSEe-cEf3WdKNfGvmbTdhPaRd__VxvW2E-Q=w240-h480-rw',
'taiga': 'https://toppng.com/uploads/preview/taiga-logo-11609378802pe5qhhazbr.png',
'sonarqube (community)': 'https://icons-for-free.com/iff/png/512/sonarqube-1336519700268537013.png',
'nvidia rtx 4090': 'https://images-cdn.ubuy.com.pl/652a823904abac2439285874-nvidia-geforce-rtx-4090-founders-edition.jpg'
};

const dataFile = 'src/data.js';
const data = fs.readFileSync(dataFile, 'utf8');
const lines = data.split(/\r?\n/);

let currentTitle = null;

for (let i = 0; i < lines.length; i++) {
const line = lines[i];

if (line.includes('"title":')) {
const match = line.match(/"title":\s*"([^"]+)"/);
if (match) currentTitle = match[1];
}

if (line.includes('"image":') && currentTitle) {
const normalizedTitle = currentTitle.toLowerCase();
const replacement = mappings[normalizedTitle];
if (replacement) {
const indent = line.match(/^\s*/)[0];
lines[i] = `${indent}"image": "${replacement}",`;
console.log('Fixed:', currentTitle);
}
}
}

fs.writeFileSync(dataFile, lines.join('\n'));
console.log(`Update complete.`);
Loading