An app made to explore and find new GitHub repositories.
- Search and add GitHub Repositories of you liking with an in-app search feature.
- See relevant resources based on the majority language used in the project.
- (Add more features in this list)
Appwrite backend server is designed to run in a container environment. Running your server is as easy as running one command from your terminal. You can either run Appwrite on your localhost using docker-compose or on any other container orchestration tool like Kubernetes, Docker Swarm or Rancher.
To build and run this project:
- Get Flutter here if you don't already have it
- Clone this repository
cd
into the repo folder- Run
flutter pub get
to get the dependencies - Run
flutter run-android
orflutter run-ios
to build the app
(Please note that a Mac with XCode is required to build for iOS)
We are going to use Appwrite CLI to init the project on appwrite console.
The CLI is packaged both as an npm module as well as a standalone binary for your operating system, making it completely dependency free, platform independent and language agnostic.
If you have npm set up, run the command below to install the CLI
Prerequisites : Node.js (for npm)
npm install -g appwrite-cli
After the installation is complete, verify the install using
appwrite -v
Before you can use the CLI, you need to login to your Appwrite account using
appwrite login
After you're logged in, the CLI needs to be initialized with your Appwrite project. You can initialize the CLI using:
appwrite init project
Choose Create a new Appwrite project
and the following prompts will guide you through the setup process, enter gitsafari
as the ID for your new project. The init command also creates an appwrite.json file representing your Appwrite project.
Create a new database
appwrite databases create --databaseId postdatabase --name posts
Create a new collection
appwrite databases createCollection --databaseId postdatabase --collectionId postcollection --name posts --permissions 'read(\"any\")' 'write(\"any\")'
Create username
attribute
appwrite databases createStringAttribute --databaseId postdatabase --collectionId postcollection --key username --size 255 --required true
Create caption
attribute
appwrite databases createStringAttribute --databaseId postdatabase --collectionId postcollection --key caption --size 255 --required true
Create imageId
attribute
appwrite databases createStringAttribute --databaseId postdatabase --collectionId postcollection --key imageId --size 255 --required true
Create a bucket to store post images
appwrite storage createBucket --bucketId imagesbucket --name images --permissions 'read(\"any\")' 'write(\"any\")'
You may need to make some changes in lib/consts/constants.dart
:
APPWRITE_URL: This is the endpoint URL. If you are testing the app on an android studio emulator and appwrite is configured on cloud.appwrite.io, then you don't need to change it. Otherwise, you will need to change the hostname to the URL that you set while initiating appwrite.
Rest of the constants.dart
should be left as it is.
Finally, you need to register the flutter app. On appwrite console (http://localhost), choose this project, then under "Platforms" head, choose "Add Platform", choose "New Flutter App", and add the required information for all the platforms you are going to run the app.
Now your Project is ready to run.
.
βββ android # android files (auto generated)
βββ assets # assets (images)
βββ ios # ios files (auto generated)
βββ lib
βββ api # Logic for handling Appwrite and GitHub APIs
βββ models # Custom Models
βββ screens # Various Screens of the App
β βββ home_tabs # Tabs for home screen
βββ utils # Api info and Local DB Logic
βββ widgets # Custom widgets