This was my very first attempt at coding. I know it's filled with lots of shit, but I just don't want to erase my journey. Maybe one day I'll come back and refactor it... but for now, it stays as a testament to how far I've come.
Light is a community-oriented instant messaging platform inspired by Discord's design. It allows members to create servers and communicate in channel of each server freely via messages, video, and audio.
- Use Django as server framework.
- Use Django Channels as support of WebSocket (ASGI) to achieve real-time chat.
- Use WebRTC to achieve voice and video chat.
- Deploy the website by Docker.
- Store static files and uploaded media from user by AWS S3 and speed up distribution of static files by CloudFront.
- Authenticate user with JSON Web Token.
- Use Django ORM with AWS RDS for MySQL and normalize database in 3NF.
- Use unit tests to ensure the correctness and robustness.
- Python Django
- Python Django Channels (ASGI)
- RESTful APIs
- Linux(Ubuntu)
- MVC Pattern
- Unit Test
- HTML
- CSS
- JavaScript
- Ajax
- EC2
- S3
- CloudFront
- RDS (MySQL)
- MySQL
- Django ORM
- Redis
- HTTP & HTTPS
- Domain Name System
- NGINX
- SSL (SSL For Free)
- WebSocket, WebRTC
- Docker
- Git /GitHub
light
│ manage.py
│
├─accounts
│ │ admin.py
│ │ apps.py
│ │ models.py
│ │ urls.py
│ │ views.py
│ │ __init__.py
│ │
│ │
│ ├─static
│ │ └─accounts
│ │ ├─css
│ │ │ accounts.css
│ │ │
│ │ └─js
│ │ login.js
│ │ register.js
│ │
│ └─templates
│ └─accounts
│ login.html
│ register.html
│
│
├─channel
│ │ admin.py
│ │ apps.py
│ │ consumers.py
│ │ models.py
│ │ routing.py
│ │ urls.py
│ │ views.py
│ │ __init__.py
│ │
│ │
│ ├─static
│ │ └─channel
│ │ ├─css
│ │ │ channel.css
│ │ │ setting.css
│ │ │
│ │ ├─imgs
│ │ │ default_avatar-512x512.png
│ │ │ me_server.png
│ │ │ Ripple-2s-243px.gif
│ │ │
│ │ └─js
│ │ channel.js
│ │ server.js
│ │ setting.js
│ │
│ └─templates
│ └─channel
│ channel.html
│
│
├─chats
│ admin.py
│ apps.py
│ models.py
│ urls.py
│ views.py
│ __init__.py
│
│
├─light
│ asgi.py
│ settings.py
│ urls.py
│ wsgi.py
│ __init__.py
│
│
└─static
└─light
favicon.ico
.gitignore
Dockerfile
README.md
requirements.txt
🧑💻 Jesse Hou 侯晨曦