We all encounter unique ideas for solving problems in our daily lives, but often we lack a platform to share and develop these ideas collaboratively. IdeaHub is the solution. This application is designed to provide a space where everyone can post their ideas, receive constructive feedback, and unlock rewards for innovative solutions.
- Express Your Thoughts: Share your unique ideas regarding various problem statements with the community.
- Detailed Descriptions: Provide a comprehensive description of your idea, including the problem it addresses and potential solutions.
- Image Support: Add visual representations to better communicate your ideas.
- Community Interaction: Engage with a community of like-minded individuals who can provide valuable feedback on your ideas.
- Upvote System: Users can upvote the feedback they find most useful, ensuring the best suggestions rise to the top.
- My Ideas Dashboard: View all your posted ideas in one place.
- View Idea Details: Access detailed views of individual ideas with all associated feedback.
- Best Ideas: Discover the most popular and innovative ideas in the community.
- Leaderboard: Track top contributors and idea creators.
- React.js - Modern UI library for building interactive user interfaces
- React Router - Client-side routing
- Reactstrap - Bootstrap components for React
- Bootstrap - CSS framework for responsive design
- Remix Icon - Icon library
- React Toastify - Toast notifications
- Spring Boot - Java-based backend framework
- Spring Security - Authentication and authorization
- Spring Data JPA - Database access layer
- JWT - Token-based authentication
- MySQL - Relational database management system
- Postman - API testing and development
Before running this project, ensure you have the following installed:
- Java 11 or higher
- Node.js (v14 or higher) and npm
- MySQL (v5.7 or higher)
- Maven (for building the backend)
- Postman (optional, for API testing)
git clone https://github.com/rishabhrawat05/IdeaHub.git
cd IdeaHubNavigate to the backend directory:
cd problem-solving-platformCreate a MySQL database and update the application.yml or application.properties file with your database credentials:
spring:
datasource:
url: jdbc:mysql://localhost:3306/ideahub?createDatabaseIfNotExist=true
username: root
password: yourpassword
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update
show-sql: true./mvnw clean install
./mvnw spring-boot:runThe backend server will start on http://localhost:8080
Navigate to the frontend directory:
cd ../problem-solvernpm installUpdate the API base URL in your service files if needed (typically in src/services/).
npm startThe frontend application will start on http://localhost:3000
- Create a new account or log in to your existing account
- Authentication is handled via JWT tokens
- Click the "Post Idea" button
- Fill in the required fields:
- Title
- Description
- Optional: Upload an image
- Submit your idea to share it with the community
- Browse ideas on the home page
- Click "View Idea" to see full details
- Provide feedback and suggestions on other users' ideas
- Upvote helpful feedback
- Visit "My Ideas" to see all your posted ideas
- Check the leaderboard to see top contributors
IdeaHub/
βββ problem-solving-platform/ # Spring Boot backend
β βββ src/
β β βββ main/
β β β βββ java/
β β β β βββ com/crowdwork/problem_solving_platform/
β β β β βββ controller/ # REST API endpoints
β β β β βββ model/ # Entity models
β β β β βββ repository/ # Data access layer
β β β β βββ service/ # Business logic
β β β β βββ exception/ # Custom exceptions
β β β β βββ config/ # Configuration files
β β β βββ resources/
β β β βββ application.yml # Application configuration
β βββ pom.xml # Maven dependencies
β
βββ problem-solver/ # React frontend
βββ public/ # Static files
βββ src/
β βββ components/ # Reusable components
β βββ pages/ # Page components
β βββ services/ # API service calls
β βββ auth/ # Authentication utilities
β βββ App.js # Main application component
β βββ index.js # Application entry point
βββ package.json # NPM dependencies
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/YourFeatureName
- Commit your changes
git commit -m "Add some feature" - Push to the branch
git push origin feature/YourFeatureName
- Open a Pull Request
- Follow the existing code style
- Write meaningful commit messages
- Test your changes thoroughly
- Update documentation as needed
- Real-time notifications
- Advanced search and filtering
- Idea categories and tags
- User profiles with achievements
- Private messaging between users
For questions or support, please open an issue on the GitHub repository.
Made with β€οΈ by rishabhrawat05