{"id":26659164,"url":"https://github.com/donxito/frontend-booknotes","last_synced_at":"2026-05-05T13:39:11.760Z","repository":{"id":233981186,"uuid":"788128942","full_name":"donxito/frontend-booknotes","owner":"donxito","description":"Mini Book Club - a gift for my wife and her book reading club. Mini Book Club is a place where you can share notes of your favourite books and also ratings.","archived":false,"fork":false,"pushed_at":"2024-10-04T13:42:31.000Z","size":3103,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T10:18:19.683Z","etag":null,"topics":["authentication","chak","context-api","daisyui","react","react-hooks","react-router","rest-api","tailwindcss"],"latest_commit_sha":null,"homepage":"https://minibookclub.netlify.app/","language":"JavaScript","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/donxito.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":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-04-17T20:38:40.000Z","updated_at":"2024-10-04T13:42:35.000Z","dependencies_parsed_at":"2025-06-21T05:02:51.028Z","dependency_job_id":null,"html_url":"https://github.com/donxito/frontend-booknotes","commit_stats":null,"previous_names":["donxito/frontend-booknotes"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/donxito/frontend-booknotes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donxito%2Ffrontend-booknotes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donxito%2Ffrontend-booknotes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donxito%2Ffrontend-booknotes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donxito%2Ffrontend-booknotes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/donxito","download_url":"https://codeload.github.com/donxito/frontend-booknotes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donxito%2Ffrontend-booknotes/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261065254,"owners_count":23104763,"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":["authentication","chak","context-api","daisyui","react","react-hooks","react-router","rest-api","tailwindcss"],"created_at":"2025-03-25T10:18:22.217Z","updated_at":"2026-05-05T13:39:06.735Z","avatar_url":"https://github.com/donxito.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mini Book Club (Frontend Client)\n\nThis is the Mini Book Club Frontend (React App) repo.\n\n- Deployed live version: [Live demo](https://minibookclub.netlify.app)\n\n\n## Description\n\nThis project is a gift for my wife and her book reading club. My Mini Book Club is a place where you can share notes of your favorite books and also ratings. It allows logged-in users to manage all the books, authors, and notes that they own in the database, doing full CRUD. \n\nMini Book Club is a Full-stack application using the MERN stack (MongoDB, Express, React, and Node.JS)\n\n\n## Features\n\n- Book Listing: Display a list of books you have read.\n- Adding New Entries: Add new book entries with details such as ISBN, title, author, description, review, and rating.\n- Review Update: Update book reviews.\n- Book Deletion: Delete books along with associated notes.\n- Notes: View, add, update and delete notes for each book.\n\n\n## Technical details:\n\n- SPA frontend, built with React, consisting of multiple views and implementing all CRUD actions.\n- Include sign-up, log-in, and log-out functionality with encrypted passwords and authorization (logged-in users can do additional things).\n\n- REST API backend built with ExpressJS, MongoDB, and Mongoose.\n- REST API backend with routes that perform all CRUD actions for two models (books and authors).\n- Backend validation and centralized error handling the REST API.\n\n## Express Server Setup\n- The server setup is implemented using Express.js, and the configuration is defined in the index.js file.\n\n## API Interaction\n\n- When submitting a new book entry, cover images are fetched from the Open Library Covers API using Axios. A fetchAndSaveCover function fetches the images and saves them to the project folder.\n\n\n## Backend\n\n- Backend live server: [Backend live server](https://bookclub-api.adaptable.app)\n\n- Backend server repo: [Backend Server Repo](https://github.com/donxito/backend-booknotes)\n\n## Instructions\nTo run on your computer, follow these steps:\n1. Clone the repository.\n2. Install dependencies: `npm install`.\n3. Create a `.env` file with the following environment variables:\n    - `PORT=\u003cyour-port\u003e` (5005)\n    - `ORIGIN=http:/http://localhost:5173/`\n    - `TOKEN_SECRET=\u003cyour-token-secret\u003e`\n4. Run the application: `node server.js`.\n\n\n## Environment variables\n\n### Hosted on your localhost:\n\nAdd the following environment variables in `.env` files:\n\n#### Server\n\n- `PORT=\u003cyour-port\u003e` (5005)\n- `ORIGIN=http:/http://localhost:5173/`\n- `TOKEN_SECRET=\u003cyour-token-secret\u003e`\n\n\n#### Client\n\n- `VITE_APP_URL=http://localhost:5005`\n\n\n### Creating your own deployment\n\n#### Backend using adaptable.io\n\n- `TOKEN_SECRET=\u003cyour-token-secret\u003e`\n- `MONGODB_URI=mongodb+srv://\u003cyour-mongodb-atlas-password-+-name-of-db\u003e`\n- `ORIGIN=\u003cyour-netlify-app-domain\u003e`\n\n\n#### Frontend using netlify.app\n\n- `CI=false` (required for SPA applications deployed on this service to redirect requests to index.html)\n- `VITE_API_URL=\u003cyour-adaptable-app-domain\u003e`\n\n## Screenshots\n\n\u003cimg width=\"491\" alt=\"Screenshot 2024-04-25 at 00 06 12\" src=\"https://github.com/donxito/frontend-booknotes/assets/96595540/c1b7b2d9-e354-4f53-800d-fe90e5e24fec\"\u003e\n\n\u003cimg width=\"2055\" alt=\"Screenshot 2024-05-24 at 11 29 02\" src=\"https://github.com/donxito/frontend-booknotes/assets/96595540/486773af-b3ca-4e2b-ad1d-3f1ad2564c18\"\u003e\n\n\u003cimg width=\"2055\" alt=\"Screenshot 2024-05-24 at 11 22 03\" src=\"https://github.com/donxito/frontend-booknotes/assets/96595540/82bd060c-5c35-4c03-9b6f-5b7fd9482337\"\u003e\n\n\u003cimg width=\"997\" alt=\"Screenshot 2024-04-24 at 23 32 41\" src=\"https://github.com/donxito/frontend-booknotes/assets/96595540/25c5aa1f-1989-4dd7-a52b-e9fcaf8656f1\"\u003e\n\n\u003cimg width=\"558\" alt=\"Screenshot 2024-04-24 at 23 03 22\" src=\"https://github.com/donxito/frontend-booknotes/assets/96595540/43e20cc2-dd2a-461c-b8e1-d7d37815031e\"\u003e\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonxito%2Ffrontend-booknotes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdonxito%2Ffrontend-booknotes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonxito%2Ffrontend-booknotes/lists"}