Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/swat1563/django-frontend-social-library
Created Social Library application by Django then deploy it on AWS by using Docker and Nginx
https://github.com/swat1563/django-frontend-social-library
api-client aws aws-ec2 cors django django-rest-framework docker docker-compose dockerfile jwt nginx postgresql route53
Last synced: about 1 month ago
JSON representation
Created Social Library application by Django then deploy it on AWS by using Docker and Nginx
- Host: GitHub
- URL: https://github.com/swat1563/django-frontend-social-library
- Owner: SwAt1563
- Created: 2022-09-30T17:46:27.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2022-11-04T15:05:21.000Z (about 2 years ago)
- Last Synced: 2023-03-30T03:30:26.298Z (over 1 year ago)
- Topics: api-client, aws, aws-ec2, cors, django, django-rest-framework, docker, docker-compose, dockerfile, jwt, nginx, postgresql, route53
- Language: JavaScript
- Homepage: https://social-library-1563.ml/
- Size: 1.85 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# django-frontend-social-library
## Summary
This repository for create [Social Library Application](https://social-library-1563.ml/) by using Django then deploy it on AWS by Docker and Nginx
https://user-images.githubusercontent.com/79475839/199613069-d7db0eb4-740c-4a3e-8264-d5494a62a482.mp4
## Features
- Django 4.0
- Python 3.8-3.9
- Requests 2.28.1
- Django CORS Headers 3.13.0
- Nginx 1.19.0
- Docker-Compose 3.5
- Postgres 15.0-alpine
- EC2 on AWS
- Route 53 on AWS
- [freenom](https://my.freenom.com/) for Domain Reservation
- Load Balancer on AWS for SSL
- Certification Manger on AWS
- RDS on AWS## Prerequisites
- Install Docker
- Install Docker-Compose
- Install Git## Usage
- Clone the repository `git clone https://github.com/SwAt1563/django-frontend-social-library.git`
- Open the project `cd django-frontend-social-library`
- Run for development `docker-compose -f development-docker-compose.yml up --build -d`
- Run for production `docker-compose -f production-docker-compose.yml up --build -d`## The User Requirements
- Each user has profile
- The user should register by the Birzeit University Email `*******@student.birzeit.edu`
- The password for user should be strong
- Each user can create post by upload images or pdf only with title and description
- Admin can accept the posts or refuse it
- Admin can accept the posts or refuse it
- Just Admin can login by using username or email
- Any user can make star or unstar on any post
- Any user can make comment on any post
- The users can follow each others
- Each user has followers and following users
- The posts for each user should appear in their profiles
- Each user has notifications that appear in their profiles
- Any user can edit his profile information
- Search for users
- Search for posts## The System Requirements
- Use `requests` for make connection with the [API site](https://social-library-api-1563.ml/)
- Create `templatetags` for use it in all templates
- `localhost` tag for let the images appear in the development stage
- `d_m_y` tag for format the date
- `file_name` tag for get the file name from the file url
- Use `Bearer` for Authorization
- On each refresh on the site the `token` will be updated
- `CORS` for improve the `MIDDLEWARE`
- `SqLite3` for development and `Postgres` for production
- Make `different files of settings, Dockerfile, Docker-Compose and entrypoint` for each development and production stages
- Create `.env` file for save our environments
- Use `Nginx` to let our project work on port 80 instead of port 8000, and for handle the static files that `gunicorn` not support
- Use [freenom](https://my.freenom.com/) to reserve [https://social-library-1563.ml/](https://social-library-1563.ml/) domain
- Use `AWS` for deployment
- Use `EC2` to upload my project files on it by using `git clone` of my repository
- Run the project on `EC2` by using docker-compose `docker-compose -f production-docker-compose.yml up --build -d`
- Use `Route 53` for make connection between my domain and the `EC2` server
- Use `Certificate Manager` on my domain for support HTTPS protocol
- Use `Load Balancer` for make listener on port 80 for HTTP for redirect to listener on port 443 for HTTPS
- Use `RDS` for make `Postgres` database to use it on our project## API
You can visit the API repository [here](https://github.com/SwAt1563/django-backend-social-library)## License
There is `no license`, you can make anything on this free repository## Instructor
I'm Qutaiba Olayyan, Computer Engineering Student, trying to improve my knowledge with Django
by creating multiple projects like this one.