Unleash your creativity!
Impressle is a unique social network where you have to draw by hand, not uploading image files. Follow your favorite artists, give likes to other users' pictures and make your own ones. It's fun, just try it!
- Title
- Description
- Table of Contents
- Tech Stack
- Features
- Install and Setup
- Contributing
- Support the Project
- Backend
- Python
- SQLite Database
- Frontend
- HTML
- CSS
- JavaScript
- Account System
- Sign up
- Log in
- Account settings
- Profile
- Edit "About Me"
- Privacy
- Show followers count in my profile?
- Allow users to comment my pictures?
- Show "online" status my profile?
- Danger Zone
- Delete Account
- Profile
- Follow/Unfollow other users
- Log out
- Create Pictures
- Interact With Pictures
- Like
- Dislike
- Comment
- Delete Pictures and Comments
- Ranking System
- Get more karma to upgrade rank
- +1 karma for publishing a picture
- +1 karma for getting a like/comment
- +1 karma for getting a follower
- Visit the FAQ (Frequently Asked Questions) page for more details
- Get more karma to upgrade rank
- Admin Panel
- Inspect the database
- Edit the database (not recommended though)
- Ban users/pictures/comments
- Banned user will lost the access to their account and will be marked with
BANNEDtag in their profile - Banned picture will not be shown in Feed page, but still can be accessed by visiting URL ("/picture/{picture_uid}") and author's profile
- Banned comment's text will be changed to
BANNED
- Banned user will lost the access to their account and will be marked with
- Clone the repository
git clone https://github.com/desyatkoff/impressle.git
- Go to the repository directory
cd impressle/ - Edit configuration files
- Environment variables (secret data)
- Rename
.env.exampleto.env
mv .env.example .env
- Edit
.envusing your code editor
- Rename
- Other configs (public data)
- Edit
config.pyusing your code editor
- Edit
- Environment variables (secret data)
- Install uv
- Add uv to PATH
- Create the virtual environment
uv venv
- Install all dependencies
uv sync
- Compile translations
uv run pybabel compile -f -d translations/
- Launch
- Using Flask
uv run flask --app main:app run
- Using Gunicorn
uv run gunicorn main:app
- Using Flask
Want to help? You can update or fix something, here's how to contribute to the project repository:
- Fork the repository
- Create new branch
- Edit some code
- Push the changes to your branch
- Open a pull request here
Note
Prefer naming your git commits something like that:
- "UPDATE: Added/Improved/Removed the *feature*"
OR
"ADD: *Feature*"
"REMOVE: *Feature*" - "FIX: Fixed the *bug*"
- "COMMENT: Added/Edited/Removed a comment on line *123*"
Done! I'll review your code changes and maybe will accept them. Even just adding comments for some lines is a good contribution