The project follows a simple MERN stack structure based on CRUD operation also:
- botoken - Contains the contact info.
- client: Contains the React frontend.
- server: Contains the Express.js backend.
- Schema: Define the MongoDB schemas and models.
- routes: Define the API routes.
- controllers: Handle route logic and interact with the database.
- middlewares: Custom middleware functions.
- db: Configuration files (e.g., database connection).
- React
- Tailwind CSS
- Node.js
- Express.js
- MongoDB (Mongoose)
- JSON Web Tokens (JWT) for authentication
- bcrypt for secured password hashing
- User Authentication: Secure login and registration system with JWT authentication.
- Recipe Management: Full CRUD operations for recipes including create, edit, and delete functionalities.
- Recipe Discovery: Explore and search for recipes shared by other users.
- Comments and Ratings: Leave comments and rate recipes to share feedback.
- Favorite Recipes: Save and manage your favorite recipes for quick access.
- Responsive Design: Optimized for both desktop and mobile devices for a seamless user experience.
Ensure you have the following installed:
- Bot API (API of Telegram Bot to Interact or Contact)
- Node.js (version 14 or higher)
- TailwindCss.com(For the Styling Css of the WebApp)
- React.js
- MongoDB (running locally for me or You Can Host On Render or Heroku)
- Git for version control
- A text editor or IDE (e.g., Visual Studio Code)
-
Clone the repository:
git clone https://github.com/MrAbhi2k3/RecipeSharingCommunity.git
-
Navigate to the project directory:
cd RecipeSharingCommunity
-
Navigate to the client directory:
cd client
-
Install client dependencies:
npm install
-
Return to the project root:
cd ..
-
Navigate to server folder:
cd server
-
Create a
.env
file in the project root and configure your environment variables:PORT=2000 MONGODB_URI=mongodb://localhost/recipedb [Create Your Own] SECRET=your-secret-key
Replace your-secret-key
with a secure secret for JWT token generation.
-
To Start the development server
npm run dev
-
To Start Client Side Server
npm start