{"id":21018049,"url":"https://github.com/othreecodes/mini-instagram","last_synced_at":"2026-04-18T10:01:43.693Z","repository":{"id":119854542,"uuid":"145171095","full_name":"othreecodes/mini-instagram","owner":"othreecodes","description":"A mini instagram app done with Masonite Framework","archived":false,"fork":false,"pushed_at":"2018-08-17T22:38:55.000Z","size":17,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-01T07:21:58.374Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/othreecodes.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2018-08-17T22:17:05.000Z","updated_at":"2018-08-18T16:58:53.000Z","dependencies_parsed_at":"2023-06-03T09:30:26.312Z","dependency_job_id":null,"html_url":"https://github.com/othreecodes/mini-instagram","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/othreecodes/mini-instagram","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/othreecodes%2Fmini-instagram","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/othreecodes%2Fmini-instagram/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/othreecodes%2Fmini-instagram/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/othreecodes%2Fmini-instagram/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/othreecodes","download_url":"https://codeload.github.com/othreecodes/mini-instagram/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/othreecodes%2Fmini-instagram/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31964545,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-19T10:23:18.219Z","updated_at":"2026-04-18T10:01:38.685Z","avatar_url":"https://github.com/othreecodes.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://i.imgur.com/rEXcoMn.png\" width=\"160px\"\u003e \n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\n\u003cimg src=\"https://travis-ci.org/MasoniteFramework/masonite.svg?branch=master\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/python-3.4+-blue.svg\" alt=\"Python Version\"\u003e \u003cimg src=\"http://pepy.tech/badge/masonite?1\" alt=\"License\"\u003e  \u003cimg src=\"https://img.shields.io/github/license/MasoniteFramework/masonite.svg\" alt=\"License\"\u003e \n\u003cimg src=\"https://coveralls.io/repos/github/MasoniteFramework/core/badge.svg?branch=master#\" alt=\"License\"\u003e\n\u003ca href=\"https://gitter.im/masonite-framework/Lobby\"\u003e\u003cimg src=\"https://img.shields.io/badge/gitter-join%20chat%20%E2%86%92-brightgreen.svg\" alt=\"gitter\"\u003e\u003c/a\u003e\n\n\u003c/p\u003e\n\n## About Masonite\n\nThe modern and developer centric Python web framework that strives for an actual batteries included developer tool with a lot of out of the box functionality with an extremely extendable architecture. Masonite is perfect for beginner developers getting into their first web applications as well as experienced devs that need to utilize the full expotential of Masonite to get their applications done.\n\nMasonite works hard to be fast and easy from install to deployment so developers can go from concept to creation in as quick and efficiently as possible. Use it for your next SaaS! Try it once and you’ll fall in love.\n\n* Having a simple and expressive routing engine\n* Extremely powerful command line helpers called `craft` commands\n* A simple migration system, removing the \"magic\" and finger crossing of migrations\n* A great Active Record style ORM called Orator\n* A great filesystem architecture for navigating and expanding your project\n* An extremely powerful Service Container (IOC Container)\n* Service Providers which makes Masonite extremely extendable\n\n## Learning Masonite\n\nMasonite strives to have extremely comprehensive documentation. All documentation can be [Found Here](https://masoniteframework.gitbooks.io/docs/content/) and would be wise to go through the tutorials there. If you find any discrepencies or anything that doesn't make sense, be sure to comment directly on the documentation to start a discussion!\n\nAlso be sure to join the [Slack channel](https://masoniteframework.gitbooks.io/docs/content/)!\n\n## Linux\n\nIf you are running on a Linux flavor, you’ll need a few extra packages before you start. You can download these packages by running:\n\n```\n$ sudo apt-get install python-dev libssl-dev\n```\n\nInstead of `python-dev` you may need to specify your Python version\n\n```\n$ sudo apt-get install python3.6-dev libssl-dev\n```\n\n## Installation:\n\n```\n    $ pip3 install masonite-cli :: (may need sudo if using UNIX) ::\n    $ craft new project\n    $ cd project\n    $ craft install\n    $ craft serve\n```\n\nGo to `http://localhost:8000/`\n****\n\n\u003cp align=\"center\"\u003e\n* * * *\n\u003c/p\u003e\n\nNot all computers are made the same so you may have some trouble installing Masonite depending on your machine. If you have any issues be sure to read the [Known Installation Issues](https://docs.masoniteproject.com/prologue/known-installation-issues) Documentation.\n\n\u003cp align=\"center\"\u003e\n* * * *\n\u003c/p\u003e\n\n****\n\n## Contributing\n\nPlease read the [Contributing Documentation](https://masoniteframework.gitbook.io/docs/prologue/contributing-guide) here. Development will be on the current releasing branch of the [Core Repository](https://github.com/MasoniteFramework/core) (typically the `develop` branch) so check open issues, the current Milestone and the releases in that repository. Ask any questions you like in the issues so we can have an open discussion about the framework, design decisions and future of the project.\n\n## Contributors\n\nThank you for those who have contributed to Masonite!\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore --\u003e\n| | | |\n| :-------------: | :-------------: | :-------------: |\n| [\u003cimg src=\"https://avatars.githubusercontent.com/u/6276555?v=3\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMartín Peveri\u003c/b\u003e\u003c/sub\u003e](https://github.com/mapeveri) | [\u003cimg src=\"https://avatars.githubusercontent.com/u/25895176?v=3\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAdorifski\u003c/b\u003e\u003c/sub\u003e](https://github.com/afdolriski) | [\u003cimg src=\"https://avatars.githubusercontent.com/u/1970073?v=3\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAbram C. Isola\u003c/b\u003e\u003c/sub\u003e](https://github.com/aisola) |\n\n## License\n\nThe Masonite framework is open-sourced software licensed under the MIT license. \n\n## Hello World\n\nGetting started is very easy. Below is how you can get a simple Hello World application up and running.\n\n## Installation\n\nYou can easily create new applications with `craft`. To create a new application run:\n\n    $ craft new project_name\n\n****\n\n\u003cp align=\"center\"\u003e\n* * * *\n\u003c/p\u003e\n\nNOTE: If you do not have the craft command, you can run `pip install masonite-cli` which will install `craft` and `craft-vendor` command line tools.\n\n\u003cp align=\"center\"\u003e\n* * * *\n\u003c/p\u003e\n\n****\n\nThis command will create a new directory called `project_name` with our new Masonite project.\n\nYou can now cd into this directory by doing:\n\n    $ cd project_name\n\nNow we just need to add the pip dependencies. You can run `pip3 install -r \"requirements.txt\"` or you can run the `craft` command:\n\n    $ craft install\n\n****\n\n\u003cp align=\"center\"\u003e\n* * * *\n\u003c/p\u003e\n\nNOTE: Python craft commands are essentially wrappers around common mundane tasks. Read the docs about the craft command tool to learn more\n\n\u003cp align=\"center\"\u003e\n* * * *\n\u003c/p\u003e\n\n****\n\n\nThis will install all the required dependencies to run this framework. Now we can run the `craft` command:\n\n    $ craft serve\n\nThis will run the server at `localhost:8000`. Navigating to that URL should show the Masonite welcome message. \n\nIf that port is blocked you can specify a port by running:\n\n    $ craft serve --port 8080\n\nOr specify a host by running:\n\n    $ craft serve --host 192.168.1.283\n   \nThe server can also be auto reloaded by passing in a `-r` flag (short for `--reload`)\n\n    $ craft serve -r\n   \nThis will reload the server when Masonite detects file changes. This is very similiar to Django.\n\n## Hello World\n\nAll web routes are in `routes/web.py`. In this file is already the route to the welcome controller. To start your hello world example just add something like:\n\n```python\nGet().route('/hello/world', 'HelloWorldController@show'),\n```\n\nour routes constant file should now look something like:\n\n```python\nROUTES = [\n    Get().route('/', 'WelcomeController@show'),\n    Get().route('/hello/world', 'HelloWorldController@show'),\n]\n```\n\n****\n\n\u003cp align=\"center\"\u003e\n* * * *\n\u003c/p\u003e\n\nNOTE: Notice this new interesting string syntax in our route. This will grant our route access to a controller (which we will create below)\n\n\u003cp align=\"center\"\u003e\n* * * *\n\u003c/p\u003e\n\n****\n\nSince we used a string controller we don't have to import our controller into this file. All imports are done through Masonite on the backend.\n\nYou'll notice that we have a reference to the HelloWorldController class which we do not have yet. This framework uses controllers in order to separate the application logic. Controllers can be looked at as the views.py in a Django application. The architectural standard here is 1 controller per file.\n\nIn order to make the `HelloWorldController` we can use a `craft` command:\n\n    $ craft controller HelloWorld\n\nThis will scaffold the controller for you and put it in `app/http/controllers/HelloWorldController.py`\n\nWe will have a `show()` method by default which is the typical method we will use to \"show\" our views and content.\n\nInside the `HelloWorldController` we can make our `show` method like this:\n\n```python\ndef show(self):\n    ''' Show Hello World Template '''\n    return view('helloworld')\n```\n\nAs you see above, we are returning a `helloworld` template but we do not have that yet. All templates are in `resources/templates`. We can simply make a file called `helloworld.html` or run the `craft` command:\n\n    $ craft view helloworld\n\nWhich will create the `resources/templates/helloworld.html` template for us.\n\nLastly all templates run through the Jinja2 rendering engine so we can use any Jinja2 code inside our template like:\n\ninside the `resources/views/helloworld.html`\n\n```\n{{ 'Hello World' }}\n```\n\nNow just run the server:\n\n    $ craft serve\n\nAnd navigate to `localhost:8000/hello/world` and you will see `Hello World` in your browser.\n\nHappy Crafting!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fothreecodes%2Fmini-instagram","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fothreecodes%2Fmini-instagram","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fothreecodes%2Fmini-instagram/lists"}