{"id":24782067,"url":"https://github.com/danidmoura/bookfinder","last_synced_at":"2025-03-24T05:26:35.375Z","repository":{"id":274568521,"uuid":"922656255","full_name":"DaniDMoura/BookFinder","owner":"DaniDMoura","description":"Python app for book management with CRUD functionality, filters, and quick search. Integration with external APIs and SQL Server database.","archived":false,"fork":false,"pushed_at":"2025-01-28T04:00:22.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-28T05:18:46.338Z","etag":null,"topics":["api","crud","filters","library-management-system","python","sql-server","tkinter"],"latest_commit_sha":null,"homepage":"","language":"Python","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/DaniDMoura.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}},"created_at":"2025-01-26T19:14:48.000Z","updated_at":"2025-01-28T04:00:26.000Z","dependencies_parsed_at":"2025-01-28T05:18:52.289Z","dependency_job_id":"a167d550-7858-4b02-b4f2-30815c13f86e","html_url":"https://github.com/DaniDMoura/BookFinder","commit_stats":null,"previous_names":["danidmoura/bookfinder"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DaniDMoura%2FBookFinder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DaniDMoura%2FBookFinder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DaniDMoura%2FBookFinder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DaniDMoura%2FBookFinder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DaniDMoura","download_url":"https://codeload.github.com/DaniDMoura/BookFinder/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245214151,"owners_count":20578751,"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":["api","crud","filters","library-management-system","python","sql-server","tkinter"],"created_at":"2025-01-29T11:15:57.427Z","updated_at":"2025-03-24T05:26:35.369Z","avatar_url":"https://github.com/DaniDMoura.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BookFinder\n\n\nBookFinder is a desktop application built with Python and ttkbootstrap that allows users to search for books using the Google Books API. Users can create accounts, search for books, view detailed information about them, and maintain a wishlist of their favorite books.\n\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/Images/research.PNG\" width=\"200\" /\u003e\n\u003c/p\u003e\n\n\n## Features\n\n\n- User authentication system with secure password hashing\n- Book search functionality using Google Books API\n- Detailed book information display including:\n\n  - Title and Author\n  - Publisher and Publication Date\n  - Description\n  - Page Count\n  - Language\n  - Cover Image\n  - Buy Link (when available)\n- Personal wishlist management\n- Modern dark theme UI using ttkbootstrap\n\n## Prerequisites\n\n- Python 3.8+\n- SQL Server\n- ODBC Driver 18 for SQL Server\n- Google Books API Key\n\n## Installation\n\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/DaniDMoura/BookFinder.git\ncd BookFinder\n```\n\n2. Install required dependencies:\n```bash\npip install -r requirements.txt\n```\n\n3. Create a `.env` file in the root directory using the `.env.example` as template:\n```env\nAPI_KEY=your_google_books_api_key\nSERVER_URL=your_sql_server_url\n```\n\n4. Set up the database:\n\n   - Use the SQL scripts in the `db_queries` folder to create the necessary database and tables\n   - Run `create_database.sql` first to create the SelectedBooks database\n   - Then run `create_tables.sql` to create the Users and WishListBooks tables\n\n## Project Structure\n\n```\nBookFinder/\n├── assets/\n│   ├── Icons/\n│   │   └── (application icons)\n│   └── Images/\n│       └── (application images)\n├── db_queries/\n│   ├── create_database.sql\n│   └── create_tables.sql\n├── scripts/\n│   ├── __init__.py\n│   ├── auth.py\n│   ├── config.py\n│   ├── crud.py\n│   ├── db_connection.py\n│   ├── main.py\n│   └── requestdata.py\n├── .env.example\n├── .gitignore\n├── LICENSE.txt\n├── README.md\n└── requirements.txt\n```\n\n## Configuration\n\n### Google Books API\n\n1. Go to [Google Cloud Console](https://console.cloud.google.com/)\n2. Create a new project\n3. Enable the Google Books API\n4. Create credentials (API key)\n5. Add your API key to the `.env` file\n\n### SQL Server\n1. Install SQL Server\n2. Install ODBC Driver 18 for SQL Server\n3. Add your server URL to the `.env` file\n4. Run the database scripts from the `db_queries` folder\n\n## Usage\n\n1. Run the application:\n```bash\npython -m scripts.main\n```\n\n2. Create a new account or sign in with existing credentials\n\n3. Search for books using the search bar\n\n4. Click on book covers to view detailed information\n\n5. Add books to your wishlist using the \"Put this book on my wish list\" button\n\n6. View your wishlist using the \"See your wish list\" button\n\n## Security Features\n\n- Password hashing using bcrypt\n- Input validation for usernames and passwords\n- SQL injection prevention using parameterized queries\n- Secure database connections\n\n## Contributing\n\n1. Fork the repository\n2. Create a new branch (`git checkout -b feature/improvement`)\n3. Make your changes\n4. Commit your changes (`git commit -am 'Add new feature'`)\n5. Push to the branch (`git push origin feature/improvement`)\n6. Create a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.txt](LICENSE.txt) file for details\n\n## Acknowledgments\n\n- [Google Books API](https://developers.google.com/books)\n- [ttkbootstrap](https://ttkbootstrap.readthedocs.io/)\n- [pyodbc](https://github.com/mkleehammer/pyodbc)\n- [bcrypt](https://github.com/pyca/bcrypt/)\n\n## Contact\n\nProject Link: [https://github.com/DaniDMoura/BookFinder](https://github.com/DaniDMoura/BookFinder)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanidmoura%2Fbookfinder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanidmoura%2Fbookfinder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanidmoura%2Fbookfinder/lists"}