- Project Overview
- Features
- Technologies Used
- Backend Architecture
- Database Schema
- API Endpoints
- Frontend Integration
- Deployment
- Next Steps
Thinkify is an idea analysis and brainstorming platform designed to help users generate, refine, and validate their business and project ideas. The platform provides a structured framework to analyze ideas in-depth, including competitive analysis, suggestions for improvement, and actionable implementation steps. Additionally, the platform allows users to receive notifications and set alarms for reviewing their ideas, enhancing engagement and idea progression.
Link: https://youtu.be/w8hZm_c8CUw
- Idea Submission & Analysis: Users can submit ideas, and the AI analyzes them with structured responses, including title, category, target audience, objective, suggestions, market analysis, implementation steps, and a summary.
- Idea Notifications: Notifications are sent to users for feedback or updates related to their ideas.
- Set Alarm for Idea Review: Users can set alarms to review and update their ideas.
- Badges & Titles: Users earn badges and titles for contributing and participating in the community.
- Top Idea Highlights: Highlight the top-rated or trending ideas within the platform.
- Realtime Notifications: Receive live updates for new ideas or responses.
- Frontend: React.js, HTML, CSS, JavaScript
- Backend: Appwrite, Node.js, TypeScript
- Database: Appwrite Database (NoSQL)
- Hosting: Appwrite Cloud or Self-hosted Appwrite
- Realtime Notifications: Appwrite Realtime API
- Model: LLaMA2, Mistral, and Deepseek-R1 for Idea Analysis
The backend is built with Appwrite to handle user management, idea submission, notifications, alarms, badges, and other essential services.
- Databases: Appwrite is used to store user data, ideas, badges, notifications, and alarms.
- Collections: Each collection stores different aspects of the system, such as user details, ideas, notifications, and alarms.
- Users: Stores user details like
user_id,email,username, etc. - Ideas: Stores the ideas submitted by users, including
title,description,category,target_audience, etc. - Badges: Contains information about badges earned by users.
- Notifications: Stores notifications for users.
- Alarms: Stores alarms set by users for reviewing ideas.
| Field | Type | Description |
|---|---|---|
account_id |
String | Unique ID |
fullname |
String | Full name of user |
email |
String | |
avatar |
String | Avatar |
| Field | Type | Description |
|---|---|---|
idea_id |
String | Unique idea ID |
user_id |
String | Associated user ID |
title |
String | Idea title |
description |
String | Idea description |
category |
String | Idea category |
target_audience |
String | Target audience |
objective |
String | Idea objective |
created_at |
DateTime | Timestamp |
| Field | Type | Description |
|---|---|---|
badge_id |
String | Unique badge ID |
badge_name |
String | Name of the badge |
description |
String | Description of the badge |
| Field | Type | Description |
|---|---|---|
notification_id |
String | Unique notification ID |
user_id |
String | Associated user ID |
message |
String | Notification message |
is_read |
Boolean | Read status |
created_at |
DateTime | Timestamp |
| Field | Type | Description |
|---|---|---|
alarm_id |
String | Unique alarm ID |
user_id |
String | Associated user ID |
idea_id |
String | Associated idea ID |
alarm_time |
DateTime | Alarm time |
- POST
/create_user: Create a new user. - GET
/get_user/:user_id: Fetch user details.
- POST
/create_idea: Submit a new idea. - GET
/get_ideas: Fetch all ideas. - GET
/get_idea/:idea_id: Fetch a specific idea.
- POST
/send_notification: Send a notification to a user. - GET
/get_notifications/:user_id: Fetch all notifications for a user.
- POST
/set_alarm: Set an alarm for an idea. - GET
/get_alarms/:user_id: Fetch all alarms for a user.
The frontend communicates with the backend using RESTful API calls to fetch and submit data for users, ideas, alarms, and notifications.
// Fetch all ideas
async function loadIdeas() {
const response = await fetch("http://localhost:3000/get_ideas");
const ideas = await response.json();
console.log(ideas);
}-
Backend Deployment:
- Host Appwrite on Appwrite Cloud.
- Set up appropriate environment variables like the
APPWRITE_ENDPOINTandAPPWRITE_PROJECT_ID.
-
Frontend Deployment:
- Host the React frontend on platforms like Vercel.
- Connect the frontend with the backend API using fetch or Axios.
- Integrate Realtime Features: Use Appwrite's Realtime API to notify users when their idea receives feedback.
- Scaling: Prepare for scaling by optimizing database queries and implementing caching strategies.
- Vrajesh Sharma - AI Lead and Full Stack Developer
- Prince Rathod - Team Lead and Full Stack Developer
- Vatsal Patel - Marketing Lead and AI/backend developer