A website appplication built using python (Django) that mimics Instagram to allow users to
- Post Images
- Like Images
- Save Images to their profiles
- Follow and Unfollow other users
- View posts by users have those of users they have followed be displayed in their timelines
- Comment on any post
- Search for any user and view their profile
- Explore to view posts by all users
- Edit their personal profiles
- In order to be able to run the application you'll need to generate your cloudinary api key. Head over to Cloudinary and create an account.
- You will need to clone the application and create a virtual and install the dependencies from requirements.txt.
- Assuming you already created the application database, You can now run the application.
- python Django
- PSQL
- Javascript
- CSS
- Ajax and Jquery
The application uses Django's MVT (Model-View-Template) architecture which is a software design pattern for developing a web application.
Model - The model is going to act as the interface of your data. It is responsible for maintaining data. It is the logical data structure behind the entire application and is represented by a database (generally relational databases such as MySql, Postgres). Django Models
View - a view is called that interact with model and template, it renders a template Django views
Template - A template consists of static parts of the desired HTML output as well as some special syntax describing how dynamic content will be inserted. Django templates
![](./images/structure.png)
$ git clone https://github.com/charity-bit/Instagram-Clone
$ python3 -m venv virtual
$ pip install -r requirements.txt
$ pip list
$ source virtual/bin/activate #to activate the virtual enviroment
create a .env file in the root folder to save your configuration variables that are neccessary in order for the application to run.
CD_NAME="cloud name app from cloudinary"
CD_API_KEY="api key from cloudinary"
CD_API_SECRET="api secret from cloudinary"
SECRET_KEY='your secret key'
DEBUG=True
DB_NAME='your db name'
DB_USER='your db user'
DB_PASSWORD='password to the db user'
DB_HOST='127.0.0.1'
MODE='dev'
ALLOWED_HOSTS='127.0.0.1'
DISABLE_COLLECTSTATIC=1
$ make / $ make serve / python3 manage.py runserver
Run test to the models
$ make test / python3 manage.py tests
![](./images/timeline.png)
![](./images/explore.png)
![](./images/post.png)
![](./images/comment.png)
![](./images/user_profile.png)
![](./images/follow.png)
copyright © Charity 2022 - MIT
-LinkedIn - Charity Nyanchera
-twitter - CcNyanchera