Skip to content

This repository is the source code of impressle.fun website. Impressle is a unique social network where you have to draw by hand, not uploading image files

License

Notifications You must be signed in to change notification settings

desyatkoff/impressle

Repository files navigation

Impressle

Description

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!

Table of Contents

  1. Title
  2. Description
  3. Table of Contents
  4. Tech Stack
  5. Features
  6. Install and Setup
  7. Contributing
  8. Support the Project

Tech Stack


Features

  • 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
    • 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
  • 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 BANNED tag 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

Install and Setup

Easy Method

  1. Clone the Repository
    $ git clone https://github.com/desyatkoff/impressle.git
  2. Go to the Repository Directory
    $ cd impressle/
  3. Launch Auto-Setup Script (setup.sh)
    $ sh setup.sh
  4. Launch the Web App
    $ python main.py
  5. Go to http://127.0.0.1:5000

Normal Method

  1. Clone the Repository
    $ git clone https://github.com/desyatkoff/impressle.git
  2. Go to the Repository Directory
    $ cd impressle/
  3. Edit Configuration Files
    • Environment variables (secret data)
      • Rename .env.example to .env
      $ mv .env.example .env
      • Edit .env using your code editor
    • Other configs (public data)
      • Edit config.py using your code editor
  4. Install pipenv
    $ pip install pipenv
  5. Add pipenv to PATH
  6. Create the Virtual Environment
    $ pipenv install --python 3.9
  7. Lock the Pipfile
    $ pipenv lock
  8. Install All the Dependencies
    $ pipenv sync
  9. Compile the Translations
    $ pybabel compile -f -d translations/
  10. Activate the Virtual Environment
    $ pipenv shell
  11. Launch the Web App
    • Using Python
      $ python main.py
    • Using Flask
      $ flask --app main:app run
    • Using Gunicorn
      $ gunicorn main:app
  12. Go to http://127.0.0.1:5000

Using Docker Method

  1. Clone the Repository
    $ git clone https://github.com/desyatkoff/impressle.git
  2. Go to the Repository Directory
    $ cd impressle/
  3. Edit Configuration Files
    • Environment variables (secret data)
      • Rename .env.example to .env
      $ mv .env.example .env
      • Edit .env using your code editor
    • Other configs (public data)
      • Edit config.py using your code editor
  4. Compile the Translations
    $ pybabel compile -f -d translations/
  5. Build the Docker Image
    $ docker build -t impressle:latest
  6. Run Your New Docker Image
    $ docker run impressle:latest
  7. Go to http://127.0.0.1:5000

Contributing

Want to help? You can update or fix something, here's how to contribute to the project repository:

  1. Fork the repository
  2. Create new branch
  3. Edit some code
  4. Push the changes to your branch
  5. Open a pull request here

Note

Prefer naming your git commits something like that:

  1. "UPDATE: Added/Improved/Removed the *feature*"
    OR
    "ADD: *Feature*"
    "REMOVE: *Feature*"
  2. "FIX: Fixed the *bug*"
  3. "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

Support the Project

Want to help but don't know how to code?

  • Crypto (only send TON, other coins will be lost!)
    UQCsdH1ItNGo9RB8f8AoNfGTr9gdPAi_YkCV2hk7_MVOHydV
    
  • ...or just give a star to this repository and tell your friends about Impressle :)

About

This repository is the source code of impressle.fun website. Impressle is a unique social network where you have to draw by hand, not uploading image files

Topics

Resources

License

Stars

Watchers

Forks