- 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.
- 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 or self-host it using Docker.
- Set up appropriate environment variables like the
APPWRITE_ENDPOINTandAPPWRITE_PROJECT_ID.
-
Frontend Deployment:
- Host the React frontend on platforms like Vercel, Netlify, or AWS S3.
- 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 - UI/UX developer