Skip to content
/ Synk Public

Synk is a project created for publishing posts, following users, etc. It is written mainly in python (FastAPI and Flask)

License

Notifications You must be signed in to change notification settings

SMatvii/Synk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Synk

Synk Logo

Synk is a modern social media platform designed for posting, following users, commenting, and community interaction. The backend is built with Python (FastAPI + SQLAlchemy), and the frontend uses Flask (Jinja2), HTML, CSS, and JavaScript.


Features 📃

  • Post publication: create, view, and delete posts.
  • Comments: add, view, edit, and delete comments on posts.
  • Registration & authentication: secure registration/login system using JWT (OAuth2).
  • User profiles: view profile, bio, follower count.
  • Subscriptions: follow/unfollow users.
  • Search: search content and users.
  • Light/dark theme: theme switcher for a comfortable experience.
  • Responsive interface: modern design, works on all devices.
  • API: RESTful API for integration and testing (FastAPI).

How to run? 🚀

  1. Clone the repository

    git clone https://github.com/SMatvii/Synk.git
    cd Synk
  2. Install dependencies

    python -m venv venv
    source venv/bin/activate  # or venv\Scripts\activate for Windows
  3. Run backend (FastAPI)

    uvicorn backend:app --reload

    Make sure your environment variables (.env) are set up

  4. Run frontend (Flask)

    cd frontend
    flask run
  5. Open in your browser


Quick Guide

  1. Register/Login
    • Go to /auth, create an account or log in.
  2. Create a post
    • After logging in, you can create a new post with a description and content.
  3. Follow users
    • Open a user's profile and click "Follow".
  4. Comment
    • Open any post and leave your comment.
  5. Search
    • Use the search bar in the top menu to find posts/users.
  6. Switch theme
    • Use the moon/sun icon to toggle interface themes.

Project structure

Synk/
├── backend/               # FastAPI backend (API, models, routers)
│   ├── db/
│   ├── routes/
│   └── utils/
├── frontend/              # Flask frontend (templates, static files)
│   ├── templates/
│   └── static/
├── requirements.txt
├── README.md
└── ...

Testing

Unit tests for the main features (e.g., CRUD for comments, posts) can be found in their respective test files, such as: comment_test.py. To run:

python -m unittest comment_test.py

About

Synk is a project created for publishing posts, following users, etc. It is written mainly in python (FastAPI and Flask)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •