|
1 | 1 | # Bookly
|
| 2 | + |
| 3 | +Bookly is an innovative online platform designed for book lovers to connect and share their personal collections. Users can easily list the novels and books they own, making them available for others to purchase or borrow. Whether you’re looking to clear space on your bookshelf, discover new reads, or lend a hand to fellow readers, Bookly creates a community-driven marketplace for exchanging books. With a simple and user-friendly interface, Bookly makes it effortless to explore a wide variety of titles, fostering a sustainable and connected book-sharing experience. |
| 4 | + |
| 5 | +## Table of Contents |
| 6 | + |
| 7 | +- [Features](#features) |
| 8 | +- [Technologies Used](#technologies-used) |
| 9 | +- [Installation](#installation) |
| 10 | +- [Usage](#usage) |
| 11 | +- [Modules](#modules) |
| 12 | +- [API Documentation](#api-documentation) |
| 13 | +- [Contributing](#contributing) |
| 14 | +- [License](#license) |
| 15 | +- [Contact](#contact) |
| 16 | + |
| 17 | +## Features |
| 18 | + |
| 19 | +### Auth |
| 20 | + |
| 21 | +- **User Registration and Authentication:** Users can register, log in, and manage their accounts. |
| 22 | +- **Account Activation via Email:** New users receive an activation link to confirm their account. |
| 23 | +- **Password Reset Functionality:** Users can request a password reset link via email. |
| 24 | +- **Token Blacklisting:** Ensures that tokens are invalidated after logout or expiration. |
| 25 | +- **Celery Integration for Background Tasks:** For sending emails and clearing expired tokens and logs. |
| 26 | + |
| 27 | +## Technologies Used |
| 28 | + |
| 29 | +- **Backend Framework:** FastAPI |
| 30 | +- **Database:** PostgreSQL |
| 31 | +- **Asynchronous ORM:** SQLModel |
| 32 | +- **Task Queue:** Celery |
| 33 | +- **Broker:** Redis |
| 34 | +- **Other Libraries:** Pydantic, Alembic, etc. |
| 35 | + |
| 36 | +## Installation |
| 37 | + |
| 38 | +### Prerequisites |
| 39 | + |
| 40 | +Make sure you have the following installed: |
| 41 | + |
| 42 | +- Python 3.9 or higher |
| 43 | +- Docker |
| 44 | +- Docker Desktop (optional but recommended) |
| 45 | + |
| 46 | +### Steps |
| 47 | + |
| 48 | +1. **Clone the repository:** |
| 49 | + |
| 50 | + ```bash |
| 51 | + git clone https://github.com/datarohit/bookly.git |
| 52 | + cd bookly |
| 53 | + ``` |
| 54 | + |
| 55 | +2. **Start the application using Docker Compose:** |
| 56 | + |
| 57 | + ```bash |
| 58 | + docker-compose up -d --build |
| 59 | + ``` |
| 60 | + |
| 61 | +This command will build the necessary services and start the application, including the database, Redis server, and any other dependencies required for the project. |
| 62 | + |
| 63 | +## Usage |
| 64 | + |
| 65 | +- Access the API at `http://localhost:8000/api/v1/`. |
| 66 | +- Use the `/auth` endpoints for user authentication and management. |
| 67 | + |
| 68 | +## Modules |
| 69 | + |
| 70 | +### Auth Endpoints |
| 71 | + |
| 72 | +- **Register User:** `POST /auth/register` |
| 73 | +- **Activate User:** `POST /auth/activate/{activation_token}` |
| 74 | +- **Login User:** `POST /auth/login` |
| 75 | +- **Logout User:** `POST /auth/logout` |
| 76 | +- **Forgot Password:** `POST /auth/forgot-password` |
| 77 | +- **Reset Password:** `POST /auth/reset-password/{password_reset_token}` |
| 78 | +- **Get Logged-in User:** `GET /auth/me` |
| 79 | + |
| 80 | +## API Documentation |
| 81 | + |
| 82 | +You can find the full API documentation at `http://localhost:8000/api/v1/docs`, generated using Swagger UI. |
| 83 | + |
| 84 | +## Contributing |
| 85 | + |
| 86 | +Contributions are welcome! Please fork the repository and submit a pull request with your changes. Make sure to follow the code style and conventions. |
| 87 | + |
| 88 | +## License |
| 89 | + |
| 90 | +This project is licensed under the MIT License. See the [LICENSE](https://github.com/DataRohit/Bookly/blob/master/license) file for more details. |
| 91 | + |
| 92 | +## Contact |
| 93 | + |
| 94 | +For any inquiries or feedback, please contact: |
| 95 | + |
| 96 | +- **Rohit Ingole** - [rohit.vilas.ingole@gmail.com](mailto:rohit.vilas.ingole@gmail.com) |
| 97 | +- **GitHub:** [datarohit](https://github.com/datarohit) |
0 commit comments