This is an SOA app and needs both this repo (back end) AND (front end) in order to be fully functioning.
Lend-A-Toolza is a crowdsourced tool lending library web application. Designed for folks looking to borrow a particular tool within any given area/location. Lend-A-Toolza has the ability for registered users to upload their lendable tool with a picture, a description of the tool and a borrowing period as well as choose to borrow from a list of available tools in their area.
The purpose of the backend for the Lend-A-Toolza app is to support the overall functionality and effectiveness of the platform. Here are some key purposes of the backend in relation to the project:
Data management: The backend serves as the central hub for storing, organizing, and managing the data associated with tools, store locations and AI generated tool recommendations. It provides the necessary infrastructure and databases to efficiently handle the large volume of information generated by the app's users.
User-generated content management: The backend handles the uploading, storage, and retrieval of user-generated content, such as pictures, descriptions, and borrowing period and the tool's status. It ensures efficient data handling and metadata management. The backend enables users to contribute and share their tools, enriching the platform's content and informing the community.
Community interaction and engagement: The backend supports community-driven features, such as adding tools to be loaned. In the future it will enable users to interact with each other through comments, likes, and replies, fostering a sense of community and encouraging user engagement. The backend ensures smooth communication and real-time updates within the app, enhancing the overall user experience.
Overall, the purpose of the backend in the Lend-A-Toolza app is to support seamless data management and community engagement. It plays a vital role in ensuring the app's functionality, security, and user satisfaction, ultimately enhancing the experience of users searching for available tools.
- Rails 7.0.6
- Ruby 3.2.2
To get a local copy, follow these simple instructions
- Fork the Project
- Clone the repo
git clone git@github.com:sicknacco/lend-a-toolza-be.git
- Install the gems
bundle install
- Create the database
rails db:{create,migrate}
- Add Figaro
bundle exec figaro install
GOOGLE_API_KEY: <your_key_here>
OPENAI_API_KEY: <your_key_here>
- Create your Feature Branch
git checkout -b feature/AmazingFeature
- Commit your Changes
git commit -m 'Add some AmazingFeature'
- Push to the Branch
git push origin feature/AmazingFeature
- Open a Pull Request
get '/api/v1/stores/:location/:radius' -Search for Nearby Stores
get '/api/v1/chat_request' -Get Suggestions for Tools
get '/api/v1/tools/search' -Search for Tool by Location
get '/api/v1/users/:id/tools' -Displays all the tools for a specific user
post '/api/v1/users/:id/tools' -Allows a user to add tool to their toolbox
patch '/api/v1/users/:id/tools/:id' -Allows a user to borrow a tool
delete '/api/v1/users/:id/tools/:id' -Allows a user to delete a tool from thier toolbox
create_table 'tools', force: :cascade do |t|
t.string 'name'
t.string 'description'
t.string 'image'
t.string 'status'
t.integer 'user_id'
t.string 'address'
t.integer 'borrower_id'
t.datetime 'created_at', null: false
t.datetime 'updated_at', null: false
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!