A comprehensive full-stack web application for gardening enthusiasts and professionals to share, discover, and engage with gardening knowledge. Users can find insightful tips, plant care advice, seasonal guides, and techniques while contributing to a vibrant gardening community. Users can share their gardening knowledge, interact with others, and explore premium content through seamless payment integration.
Garden Glimpse is designed for gardening lovers to share their experiences and discover insights from others. This full-stack web application enables users to:
- Create and share gardening tips, guides, and images.
- Access premium content via payment integration.
- Engage in social activities such as upvoting, commenting, and following other users.
- Enjoy an interactive community experience with micro animations, infinite scroll, and a rich text editor.
- User Authentication: Secure login, registration, and profile management using
JWT. - Rich Text Editor: Create and edit gardening tips and guides with support for multimedia content.
- Social Interaction:
Upvoting,commenting,following users, andpremium content access. - Payment Integration: Enable premium features via
AAMARPAY. - News Feed: A dynamic news feed with infinite scrolling and sorting based on upvotes.
- PDF Generation: Users can
generate PDFsof gardening tips for offline use. - Profile Verification: Profiles can be verified after achieving specific milestones (e.g., 5+ upvotes on posts).
- Admin Dashboard: Manage users, content, and payments.
- Gardening Quotes: Inspirational quotes to add a positive touch to the user experience.
- Login/Registration: Users can register with an email and password, then log in.
- Create a Post: Use rich text editor to create gardening tips or guides. Attach images for more visual content.
- Upvote/Comment: Users can upvote, comment on, or reply to comments on posts.
- Follow Users: Follow other gardening enthusiasts to see their posts in your feed.
- Premium Content: Make payments to access exclusive gardening content.
- Admin Dashboard: Admin users can manage posts, payments, and users from the admin panel.
- PDF Generation: Generate a PDF version of posts for offline use.
- Frontend: Next.js for building a dynamic and responsive user interface, styled with Tailwind CSS for a modern look.
- Backend: Node.js and Express.js for creating a scalable and robust server-side application.
- Database: MongoDB for efficient data storage and management.
- Authentication: JSON Web Tokens (JWT) for secure user authentication and authorization processes.
- Payment Integration: AAMARPAY for handling secure payment processing.
- Rich Text Editor: Quill or Slate.js for enabling rich text editing capabilities in user-generated content.
- Hosting: Vercel for deploying both frontend and backend applications, ensuring reliable performance.
- User-Friendly Interface: Create an intuitive and easy-to-navigate interface for users to search, view, and share gardening content.
- Community Engagement: Enable social interactions such as upvoting, commenting, and following to foster a vibrant gardening community.
- Secure Transactions: Implement secure payment processing for premium content access and user authentication to protect sensitive information.
- Responsive Design: Ensure the application is fully responsive and functional across different devices and screen sizes.
- Rich Content Creation: Integrate a rich text editor for users to create and share multimedia gardening tips and guides.
- Admin Management: Provide tools for administrators to effectively manage users, posts, and payments.
- Dynamic Content Display: Implement a news feed that displays the latest gardening content with infinite scrolling and filtering options.
- Profile Verification: Enable users to achieve verification status to unlock premium features and enhance credibility.
The primary purpose of Garden Glimpse is to create a vibrant online community where gardening enthusiasts and professionals can share their knowledge, experiences, and resources. By providing a platform that facilitates interaction, collaboration, and access to valuable gardening content, we aim to enhance the overall gardening experience for users.
- Foster Community Engagement: Build a supportive community where users can connect, share tips, and inspire one another through gardening experiences.
- Provide Valuable Resources: Offer a wealth of gardening information, including tips, guides, and seasonal advice, to help users improve their gardening skills.
- Encourage Knowledge Sharing: Enable users to contribute their own insights and experiences, promoting a culture of learning and collaboration.
- Support User Growth: Create opportunities for users to verify their expertise and access premium content, helping them grow within the gardening community.
- Streamline Access to Information: Develop an intuitive platform that makes it easy for users to find, create, and share gardening knowledge, enhancing their overall experience.
-
Node.js
-
MongoDB
-
Yarn or npm
- Clone the repository:
git clone https://github.com/nirjhorsaha/garden-glimpse.git
cd garden-glimpse- Install dependencies:
npm install- Create a
.envfile in the root directory and add necessary configuration variables:
# MongoDB connection string
MONGODB_URI=mongodb://<username>:<password>@<host>:<port>/<database>
# JWT secret for authentication
JWT_SECRET=your_jwt_secret
# Payment gateway keys
AAMARPAY_KEY=your_aamarpay_key
# Base URL for API
API_BASE_URL=http://localhost:5000/api
# Next.js environment settings
NEXT_PUBLIC_API_URL=http://localhost:3000- Start the development server:
npm run dev- Build the project for production:
npm run build- Start the production server:
npm run start- Clone the repository:
git clone https://github.com/nirjhorsaha/garden-glimpse-server.git
cd garden-glimpse-server- Install dependencies:
npm install- Create a
.envfile in the root directory and add necessary configuration variables:
PORT = 5000
DB_URL = <your_mongodb_connection_uri>
JWT_SECRET = <your_jwt_secret>- Start the development server:
npm run devContributions are welcome.! If you'd like to contribute to this project, please follow these steps:
-
Fork the repository.
-
Create your feature branch:
git checkout -b feature-name. -
Commit your changes:
git commit -m 'Add some feature'. -
Push to the branch:
git push origin feature-name. -
Submit a pull request.