{"id":22582648,"url":"https://github.com/aayushker/foody","last_synced_at":"2025-11-01T11:04:08.263Z","repository":{"id":251194769,"uuid":"817842779","full_name":"aayushker/Foody","owner":"aayushker","description":"A recipe sharing website","archived":false,"fork":false,"pushed_at":"2025-04-01T16:34:33.000Z","size":3273,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T17:46:33.911Z","etag":null,"topics":["django-rest-framework","jwt-authentication","nextjs","nextui","postgresql"],"latest_commit_sha":null,"homepage":"https://letsfoody.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aayushker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-20T14:52:53.000Z","updated_at":"2025-04-01T16:34:37.000Z","dependencies_parsed_at":"2024-12-08T06:12:11.625Z","dependency_job_id":"62301495-f01e-40e6-9096-a62bf5c5a7eb","html_url":"https://github.com/aayushker/Foody","commit_stats":null,"previous_names":["aayushker/foody"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aayushker%2FFoody","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aayushker%2FFoody/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aayushker%2FFoody/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aayushker%2FFoody/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aayushker","download_url":"https://codeload.github.com/aayushker/Foody/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248142939,"owners_count":21054671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django-rest-framework","jwt-authentication","nextjs","nextui","postgresql"],"created_at":"2024-12-08T06:12:00.396Z","updated_at":"2025-11-01T11:04:03.227Z","avatar_url":"https://github.com/aayushker.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Foody](https://socialify.git.ci/aayushker/Foody/image?description=1\u0026font=Raleway\u0026name=1\u0026owner=1\u0026pattern=Plus\u0026theme=Auto)\n\u003cdiv align=\"center\" style=\"display: flex; flex-direction: column; align-items: center;\"\u003e\n\n*(under development)*\n\n[![wakatime](https://wakatime.com/badge/user/018dccea-572d-4bff-b35f-74753ebb999c/project/fb23589a-a7d5-4332-8863-66398e69e6cd.svg)]()\n[![Vercel Deploy](https://deploy-badge.vercel.app/vercel/letsfoody)](https://letsfoody.vercel.app)\n\n\u003c/div\u003e\nWelcome to Foody, your go-to recipe website where you can explore, cook, and share your favorite dishes. This README provides detailed instructions on setting up, using, and understanding the features and technologies behind the Foody project.\nThe project is built using the Django REST Framework for the backend API and Next.js for the frontend application. The application allows users to register, login, and manage recipes, with an admin panel for site management.\n\n## Table of Contents\n- [Features](#features)\n- [Technologies Used](#technologies-used)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Project Structure](#project-structure)\n- [API Endpoints](#api-endpoints)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Features\n- **User Authentication:** Secure login and registration using JWT tokens.\n- **Dashboard:** Personalized user dashboard to manage profiles and recipes.\n- **Recipe Management:** Add, edit and delete recipes with detailed information.\n- **Responsive Design:** Optimized for both desktop and mobile devices.\n- **Dark Mode:** Toggle between light and dark themes. \n- **SMTP Integration:** Send emails to users for notifications and updates.\n- **Admin Panel:** Manage users, recipes, and other site content from the admin dashboard.\n- **Deployment:** Dockerized application for easy deployment and scaling.\n\n## Technologies Used\n- **Frontend:**\n  - Next.js\n  - NextUI\n  - TypeScript\n  - Tailwind CSS\n  - Framer Motion\n  - Tabler Icons\n  - Jodit Editor\n  - Axios\n  - JWT-decode\n\n- **Backend:**\n  - Django\n  - Django REST Framework\n  - Simple JWT\n  - Django CORS Headers\n  - Pipenv\n  - Render\n\n- **Database**\n  - PostgreSQL\n  - Aiven\n  - Firebase \n\n- **DevOps:**\n  - Docker\n  - Docker Compose\n\n## Installation\n\n### Prerequisites\n- Node.js\n- npm\n- Python\n- Docker\n\n### Backend Setup\n1. **Clone the repository:**\n   ```bash\n   git clone https://github.com/aayushker/Foody \n   cd Foody/backend\n2. **Create a virtual environment:**\n   ```bash\n   python -m venv venv\n   source venv/bin/activate\n3. **Install dependencies:**\n   ```bash\n    pip install -r requirements.txt\n4. **Run the development server:**\n    ```bash\n    python manage.py runserver\n### Frontend Setup\n1. **Navigate to the frontend directory:**\n   ```bash\n   cd ../frontend\n2. **Install dependencies:**\n   ```bash\n    npm install\n3. **Run the development server:**\n    ```bash\n    npm run dev\n### Docker Setup\n1. **Build and run the Docker containers:**\n   ```bash\n   docker-compose up --build\n## Usage\n1. **Running the application:**\n   - Open your browser and go to `http://localhost:3000` to access the frontend.\n   - The backend API is available at `http://localhost:8000/api`.\n\n2. **User Authentication:**\n   - Register a new account or login with your account:\n\n3. **Managing Recipes:**\n   - Add, edit, or delete recipes from the dashboard.\n   - Explore recipes from the homepage and view detailed information.\n\n## Project Structure\nThe project is divided into two main directories: `frontend` and `backend`. The frontend directory contains the Next.js application, while the backend directory contains the Django REST API.\n\n\u003cpre\u003e\nFoody\n├── backend\n│   ├── backend/\n│   ├── recipes/\n│   ├── userAuth/\n│   ├── SMTP/\n│   ├── media/\n│   ├── Dockerfile\n│   ├── manage.py\n│   ├── Pipfile\n│   ├── requirements.txt\n├── frontend\n│   ├── app/\n│   │   ├── components/\n│   │   │   ├── AddRecipe/\n│   │   │   │   ├── sections/\n│   │   │   │   └── ui/\n│   │   │   ├── context/\n│   │   │   ├── ui\n│   │   │   │   ├── auth/\n│   │   │   ├── UserPanel/\n│   │   │   │   ├── sections/\n│   │   │   │   ├── ui/\n│   │   ├── layout.tsx\n│   ├── package.json\n│   ├── pages\n│   │   ├── addRecipe/ index.tsx\n│   │   ├── explore/ index.tsx\n│   │   ├── user/ index.tsx\n│   │   └── index.tsx\n└── README.md\n\u003c/pre\u003e\n\n## API Endpoints\n1. **Authentication:**\n   - Register: `POST /api/register/`\n   - Login: `POST /api/token/`\n\n2. **Recipes:**\n    - List Recipes: `GET /api/recipes/`\n    - Create Recipe: `POST /api/addRecipe/`\n    - Retrieve Recipe: `GET /api/user/recipe/:id/`\n    - Update Recipe: `PUT /api/user/recipe/:id/`\n    - Delete Recipe: `DELETE /api/user/recipe/:id/`\n\n3. **Users:**\n    - User Details: `GET /api/user/`\n    - User Profile: `GET /api/user/profile/`\n    - Update Profile: `PUT /api/users/profile/`\n    - Update Credentials: `PUT /api/user/credentials/`\n    - Refresh Token: `POST /api/token/refresh/`\n\n4. **SMTP:**\n    - Send Email: `POST /api/smtp/`\n\n5. **Admin:**\n    - Admin Panel: `/admin/`\n\n## Contributing\nThis is a private project for learning purposes, and contributions are not accepted at this time. Suggestions and feedback are always welcome!\n\n## License\nThis project is licensed under the [GNU GENERAL PUBLIC LICENSE](LICENSE).\n\nHappy cooking with Foody! If you have any questions, feel free to reach me at singhaayushker@gmail.com.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faayushker%2Ffoody","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faayushker%2Ffoody","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faayushker%2Ffoody/lists"}