All Projects → BalestraPatrick → HomeKitty

BalestraPatrick / HomeKitty

Licence: MIT license
A Vapor 3 website to easily browse HomeKit accessories.

Programming Languages

swift
15916 projects
CSS
56736 projects
javascript
184084 projects - #8 most used programming language
PLpgSQL
1095 projects
shell
77523 projects

Projects that are alternatives of or similar to HomeKitty

Mysql Kit
🐬 Pure Swift MySQL client built on non-blocking, event-driven sockets.
Stars: ✭ 159 (+112%)
Mutual labels:  vapor, server-side-swift
Telegrammer
Telegram Bot - written with Swift 5.2 / NIO, supports Linux, macOS
Stars: ✭ 248 (+230.67%)
Mutual labels:  vapor, server-side-swift
Http
🚀 Non-blocking, event-driven HTTP built on Swift NIO.
Stars: ✭ 220 (+193.33%)
Mutual labels:  vapor, server-side-swift
GraphQLRouteCollection
A GraphQL based RouteCollection for Vapor
Stars: ✭ 18 (-76%)
Mutual labels:  vapor, server-side-swift
paginator
Offset pagination for Vapor 🗂
Stars: ✭ 67 (-10.67%)
Mutual labels:  vapor, server-side-swift
Api Template
💧 A starting point for Vapor APIs.
Stars: ✭ 130 (+73.33%)
Mutual labels:  vapor, server-side-swift
async
⏱ Promises and reactive-streams in Swift built for high-performance and scalability.
Stars: ✭ 35 (-53.33%)
Mutual labels:  vapor, server-side-swift
Sql Kit
*️⃣ Build SQL queries in Swift. Extensible, protocol-based design that supports DQL, DML, and DDL.
Stars: ✭ 115 (+53.33%)
Mutual labels:  vapor, server-side-swift
sqlite-kit
Non-blocking SQLite client library with SQL builder built on SwiftNIO
Stars: ✭ 51 (-32%)
Mutual labels:  vapor, server-side-swift
VaporTwilioService
Twilio API provider for all your Vapor needs
Stars: ✭ 19 (-74.67%)
Mutual labels:  vapor, server-side-swift
Mistkit
Swift Package for Server-Side and Command-Line Access to CloudKit Web Services
Stars: ✭ 129 (+72%)
Mutual labels:  vapor, server-side-swift
fluent-postgres-driver
🐘 PostgreSQL driver for Fluent.
Stars: ✭ 120 (+60%)
Mutual labels:  vapor, server-side-swift
Flock
Automated deployment of Swift projects to servers
Stars: ✭ 127 (+69.33%)
Mutual labels:  vapor, server-side-swift
Websocket Kit
WebSocket client library built on SwiftNIO
Stars: ✭ 155 (+106.67%)
Mutual labels:  vapor, server-side-swift
Open Crypto
🔑 Hashing (BCrypt, SHA2, HMAC), encryption (AES), public-key (RSA), and random data generation.
Stars: ✭ 115 (+53.33%)
Mutual labels:  vapor, server-side-swift
Htmlkit
A type-safe DSL that renders dynamic HTML templates in Swift
Stars: ✭ 229 (+205.33%)
Mutual labels:  vapor, server-side-swift
Vapor Oauth
OAuth2 Provider Library for Vapor
Stars: ✭ 90 (+20%)
Mutual labels:  vapor, server-side-swift
Vaporsecurityheaders
Harden Your Security Headers For Vapor
Stars: ✭ 107 (+42.67%)
Mutual labels:  vapor, server-side-swift
Console Kit
💻 APIs for creating interactive CLI tools.
Stars: ✭ 252 (+236%)
Mutual labels:  vapor, server-side-swift
fluent-mysql-driver
🖋🐬 Swift ORM (queries, models, relations, etc) built on MySQL.
Stars: ✭ 69 (-8%)
Mutual labels:  vapor, server-side-swift

Language MIT License

HomeKitty

HomeKitty is a website built in Vapor 3 that keeps track of all HomeKit accessories available in the market. Accessories are divided in 18 official categories to make it easier to find the perfect accessory for your needs. You can search any accessory by its name or manufacturer and directly open its official website to find more information.

Getting Started

To get started with HomeKitty, make sure you have installed Vapor on your machine. Please follow the official guide. Make sure to also install PostreSQL since HomeKitty uses it as database. Postgres app should work fine.

Enough with the dependencies, clone the repo.

$ git clone https://github.com/BalestraPatrick/HomeKitty

You can now choose to build via command line, or use Xcode. Who doesn't love Xcode? 🛠

  • Terminal: vapor build && vapor run serve
  • Xcode: vapor xcode -y and then CMD+r.

You will need to add some API keys as environment variables for the project to run successfully. If you're using Xcode, you can do it from the scheme menu. If you're not using Xcode, define them as environment variables. Here are the required variables:

  • STRIPE_API_KEY can be any non-empty string.
  • SENDGRID_API_KEY can be any non-empty string.
  • DB_HOSTNAME, DB_USER, DB_PASSWORD, DB_DATABASE should point to the PostgreSQL database that you have created locally. Only creating the database should be enough, Vapor will take care of generating all the needed tables when compiled for the first time.

Architecture

HomeKitty has a very simple architecture. The Sources folder contains two folders:

  • Run: contains main.swift and it's the starting point of the application.
  • App: contains all the controllers (route handlers), models and helper methods.

There are some basic tests in the Tests folder. HomeKitty uses Sourcery to automatically generate LinuxMain.swift which lists all test cases. If you add or remove a test case run sourcery from the command line to update LinuxMain.swift.

Contributing

We would love to have you onboard and help us shape the future of HomeKitty. We have a ton of new features and bug fixes ready for you in the issues.

In case you need help or simply have a technical question, join us in the #development channel in our Slack.

Database

All accessories are stored in a PostgreSQL database. If you are interested in contributing with new accessories which are release everyday, let me know and we can try to find a solution and open them up to the community to improve the database.

During development, it's possible to seed the database with some example data for debugging purposes. In order for the script to connect to the database, you have to specify DB_USER and DB_DATABASE, so they point to the PostgreSQL database. The database at this point should have no table.

Run the HomeKitty project so that the database is prepared all the tables and their schemas are set up. After that's completed, you can run the seed script to populate it with some accessories.

$ cd Scripts && ./seed.sh

Author

I'm Patrick Balestra. Email: [email protected] Twitter: @BalestraPatrick.

License

HomeKitty is available under the MIT license. See the LICENSE file for more info. Please don't re-publish the project as it is under your name. Feel free to use it a starting point for any of your other side projects though.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].