A comprehensive web application that allows users to create accounts, follow other users, upload and manage images via Cloudinary, and build and interact with startups. Users can like, dislike, comment, and manage startups while leveraging various features like search, filter, and categorization.
- User registration and login with secure JWT authentication.
- Update and delete user accounts.
- Follow/unfollow other users.
- Create, update, and delete startups.
- Add and manage startup images via Cloudinary.
- Add, delete, and view comments for startups.
- Like and dislike startups.
- Create and manage categories.
- Search startups by name or category.
- Filter startups based on criteria.
- Golang: Server-side logic.
- Gorilla Mux: Router for handling API endpoints.
- GORM: ORM for PostgreSQL.
- bcrypt: Secure password hashing.
- JWT: Authentication mechanism.
- Next.js: React framework for the user interface.
- Tailwind CSS: For responsive and modern UI design.
- ShadCN: Component library for consistent UI elements.
- Tiptap Editor: Rich-text editor for pitch creation.
- React Hook Form + Zod: Form handling with validation.
- React Icons: Icon library for enhancing UI/UX.
- Axios: HTTP client for API interactions.
Cloudinary: For image uploads and storage.
PostgreSQL: Relational database for storing data.
Before running this project, ensure you have the following installed:
- Node.js (v16 or later)
- Go (v1.19 or later)
- PostgreSQL
1). Clone the repository:
git clone <repository-url>
cd Idealy-main
cd server
2). Install Go dependencies:
go mod tidy
3). In DBInitializer File I Have DB_URI Where you can Change your database uri Postgres
go run main.go
1). Navigate to the frontend directory:
cd client
2). Install dependencies:
npm i
3). Run the development server:
npm run dev
4). Access the application at http://localhost:3000.
- POST /api/register – Register a new user.
- POST /api/login – Authenticate user and generate JWT.
- GET /api/users/:id – Get user details.
- GET /api/users/ – Get users.
- PUT /api/auth/update/:id – Update user details.
- DELETE /api/auth/delete/:id – Delete user details.
- PUT /api/auth/follow/:targetId – Follow User.
- PUT /api/auth/unfollow/:targetId – UnFollow User.
- POST /api/auth/startup – Create a new startup.
- GET /api/startup/GetAllStartup – Get Startups.
- GET /api/startup/:startupId – Get Startup.
- GET /api/startup/GetStartupUser/:startupUserId – Get StartupBasedByUser.
- PUT /api/startup/auth/updateStartup/:startupId – Update Startup.
- DELETE /api/startup/auth/deleteStartup/:startupId – Delete Startup.
- PUT /api/startup/auth/likeStartup/:startupId – Like Startup.
- PUT /api/startup/auth/dislikeStartup/:startupId – DisLike Startup.
- GET /api/startup/auth/viewStartup/:startupId – View Startup.
- POST /api/category/createCategory – Create a category.
- GET /api/category/GetAllCategory – Get all categories.
- GET /api/comment/GetAllComent/:startupId – Get All Comments
- POST /api/comment/auth/createComment/:startupId – Create Comments
- DELETE /api/comment/auth/deleteComment/:startupId – Delete Comments
Client Folder
PS C:\Users\SHADO\OneDrive\Desktop\Idealy\client> ls
Directory: C:\Users\SHADO\OneDrive\Desktop\Idealy\client
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 20-11-2024 15:29 .next
d----- 20-11-2024 12:54 actions
d----- 20-11-2024 12:54 app
d----- 20-11-2024 12:54 components
d----- 20-11-2024 12:54 lib
d----- 20-11-2024 12:59 node_modules
d----- 20-11-2024 12:54 public
-a---- 20-11-2024 12:54 379 .eslintrc.json
-a---- 20-11-2024 12:54 467 .gitignore
-a---- 20-11-2024 12:54 442 components.json
-a---- 20-11-2024 13:00 233 next-env.d.ts
-a---- 20-11-2024 12:54 330 next.config.ts
-a---- 20-11-2024 12:59 275924 package-lock.json
-a---- 20-11-2024 12:54 1390 package.json
-a---- 20-11-2024 12:54 135 postcss.config.mjs
-a---- 20-11-2024 12:54 1450 README.md
-a---- 20-11-2024 12:54 1642 tailwind.config.ts
-a---- 20-11-2024 12:54 598 tsconfig.json
Backend Folder
PS C:\Users\SHADO\OneDrive\Desktop\Idealy> cd .\server\
PS C:\Users\SHADO\OneDrive\Desktop\Idealy\server> ls
Directory: C:\Users\SHADO\OneDrive\Desktop\Idealy\server
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 20-11-2024 12:54 api
d----- 20-11-2024 12:54 controllers
d----- 20-11-2024 12:54 handlers
d----- 20-11-2024 12:54 Initializers
d----- 20-11-2024 12:54 middlewares
d----- 20-11-2024 12:54 models
d----- 20-11-2024 12:54 routes
-a---- 20-11-2024 12:54 4 .gitignore
-a---- 20-11-2024 12:54 717 go.mod
-a---- 20-11-2024 12:54 3975 go.sum
-a---- 20-11-2024 12:54 438 main.go
-a---- 20-11-2024 12:54 356 vercel.json
This project is licensed under the MIT License.






