InovaTech is a website where users can post their ideas or visions and collaborate with others who are interested in their ideas. It provides a platform for users to connect, discuss, and work together to bring innovative ideas to life.
InovaTech aims to foster a community of creative individuals who can share their ideas and find like-minded collaborators. The website allows users to post their ideas, receive feedback through comments, and connect with other users who are interested in their ideas.
- User Authentication: Users can sign up, log in, and log out to access the website's features.
- Publish Ideas: Logged-in users can publish their ideas by providing a title, description, and optional media file.
- Browse Ideas: Users can explore all published ideas on the website.
- View Idea Details: Users can view detailed information about a specific idea, including its title, description, and associated media.
- Update Ideas: Authors of ideas can update their published ideas, modifying the title, description, or media file.
- Delete Ideas: Authors of ideas can delete their published ideas from the website.
- User Profiles: Users have profiles that display their basic information, such as name, email, phone, and LinkedIn profile.
- Add Comments: Users can comment on published ideas, sharing their thoughts and feedback.
- View Comments: Users can see all comments associated with a specific idea.
- Filter Ideas by User: Users can filter ideas based on the author, viewing ideas published by a specific user.
https://drive.google.com/file/d/1Ef109OGOewovqX4J3Z6RjLmfnVuGDCfG/view?usp=sharing
https://inovatech12.netlify.app/
https://inovatech-riosumit.vercel.app/api/
The following API endpoints are available:
URL: /login
Method: POST
Description: Authenticates the user based on email and password.
Request Body: JSON object with email and password fields.
Response: JSON object with user details if authentication is successful, or an error message if authentication fails.
URL: /signup
Method: POST
Description: Registers a new user with the provided details.
Request Body: JSON object with user details (name, email, password, etc.).
Response: JSON object with the registered user details if successful, or an error message if registration fails.
URL: /islogin
Method: GET
Description: Checks if the user is currently logged in.
Response: JSON object indicating whether the user is logged in or not.
URL: /publish
Method: POST
Description: Adds a new idea to the system.
Request Body: Form data or multipart data containing the idea details (title, description, etc.) and media file (if applicable).
Response: JSON object indicating whether the idea was added successfully or not.
URL: /ideas
Method: GET
Description: Retrieves all published ideas.
Response: JSON array containing the details of all published ideas.
URL: /idea/<pk>
Method: GET
Description: Retrieves a specific idea by its ID.
Response: JSON object containing the details of the requested idea.
URL: /delete/<pk>
Method: GET
Description: Deletes a specific idea by its ID.
Response: JSON object indicating whether the idea was deleted successfully or not.
URL: /update
Method: POST
Description: Updates an existing idea with new details.
Request Body: Form data or multipart data containing the updated idea details (title, description, etc.) and media file (if applicable).
Response: JSON object indicating whether the idea was updated successfully or not.
URL: /user/<pk>
Method: GET
Description: Retrieves a specific user by their ID.
Response: JSON object containing the details of the requested user.
URL: /comment
Method: POST
Description: Adds a new comment to an idea.
Request Body: JSON object with comment details (idea ID, user ID, comment text, etc.).
Response: JSON object indicating whether the comment was added successfully or not.
URL: /comment/<pk>
Method: GET
Description: Retrieves all comments associated with a specific idea.
Response: JSON array containing the details of all comments for the requested idea.
URL: /ideas/<pk>
Method: GET
Description: Retrieves all ideas published by a specific user.
Response: JSON array containing the details of all ideas published by the requested user.
https://docs.google.com/document/d/1mA2ozYh5U90ANSRvSdkfHncB_UED9Va1Ywzvm88EdJ8/edit?usp=sharing
To get started with InovaTech, follow these steps:
-
Clone the repository:
git clone https://github.com/Riosumit/inovatech.git
-
Navigate to the project directory:
cd inovatech
-
Install the required dependencies:
pip install -r requirements.txt
-
Run the development server:
python manage.py runserver
-
Access the api's locally at http://localhost:8000/
-
Navigate to the react app directory
cd interface
-
Install the required dependencies:
npm install
-
Run the development server:
npm start
-
Access the website locally at http://localhost:3000/
Contributions to ANANTA are welcome! If you would like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them.
- Push your changes to your fork.
- Submit a pull request detailing your changes.
For any inquiries or feedback, please contact Sumit Kumar at [email protected].
We would like to acknowledge all the contributors to ANANTA and express our gratitude to the individuals, organizations, and resources that have supported its development.