Table of Contents
-
Newspaper Management System
- This is the project to implement Newspaper Management System
- We use mongodb to store a collections of news
-
Workflows
- Config database host (mongodb) in the base.conf
- On start app, create cache folder
- Using requests to download preview image for main page
- User click on category:
- Show the list of articles in that category as a scroll list
- User click on an article:
- Show the article
- User click logo or category then switch page
- User click on login:
- Login to become an author
- Save state to cache
- Author click on Articles
- Show Articles Management Window
- Click on Add Article
- Show Add Article Window
- Fill in the form
- Click on Add
- Close Add Article Window
- Update to the database
- Click on Cancel
- Close Add Article Window
- Show Add Article Window
- Click on Delete Article
- Show Delete Article Window
- Choose articles to delêt
- Click on Delete
- Confirm delete, delted choosen articles
- Update to the database
- Click on Cancel
- Close Delete Article Window
- Show Delete Article Window
- Click on Add Article
- Show Articles Management Window
- Author logout
- User exit app
- Delete temporary articles file in cache folder
-
Requirements
- Python
- MongoDB (Atlas or local)
- PyMongo
- PyQt6
Name | Student ID | Department | Contribute over 20 |
---|---|---|---|
Bùi Huy Hoàng | BI12-170 | ICT | 20 |
Nguyễn Duy An | BI12-006 | ICT | 20 |
Đinh Khánh Minh | BI12-265 | CS | 12 |
Lê Vũ Hoàng Linh | BI12-243 | CS | 17 |
Nguyễn Hoàng Dương | BI12-120 | DS | 17 |
- Login
- Logout
- Add article
- Delete article
- Show article
- Show list of articles
- Show list of categories
- Edit profile
- Install python
- For Windows: Download and install python from here
- For Linux: Install python by using command
sudo apt install python3
- Install pip
- For Windows: Download and install pip from here
- For Linux: Install pip by using command
sudo apt install python3-pip
- Install and use virtualenv (optional)
- To install virtualenv, using pip
pip install virtualenv
- Create virtual environment
virtualenv venv
-
Activate virtual environment
- On windows
venv\Scripts\activate
- On Linux/Mac
source venv/bin/activate
- Install dependencies
pip install -r requirements.txt
- Init database with init data:
python ./model/Data.py
- Run app
python main.py
- Deactivate virtual environment
- On Windows:
venv\Scripts\deactivate
- On Linux/Mac:
deactivate
- Thay đổi base.conf (còn host cho database và icon)
- Fix taskbar hiển thị icon của python thay vì của app
- Thay đổi hàm create_author. Thêm parameter cho email
- Chỉnh sửa hàm hash_password và check_password trong models/methods.py cho chạy chính xác hơn
- Thêm hàm _check_exist_email trong models/dbqueqry.py
- register.ui giờ có thêm trường điền email
- TODO: Xóa pointer-event trong stylesheet của register.ui vì mỗi lần mở đều print ra terminal Unknown property pointer-events
- Hoàn thành login logic, register logic.
- 1 thay đổi với Data_Articles. Giờ có thêm preview_img
- Thay đổi cách bộ nhớ đệm lưu trữ thông tin
- Giờ mọi thứ liên quan đến current_user sẽ làm việc qua ./cache/json
- Thay đổi cách lưu trữ ảnh trong database
- Hoàn thành chức năng thêm bài viết
- Hoàn thành chức năng xóa bài viết
- Hoàn thành chức năng hiển thị bài viết
- Hoàn thành chức năng hiển thị Profile
- Hoàn thành chức năng Edit Profile
- File new_ui_alpha.py -> main.py
- Decompose main.py
- Xoá icon trong base.conf
- Sửa requirements.txt (bị thiếu pymongo)
- Sửa README.md, thêm changelog
- Sửa LICENSE từ Unlicense sang MIT
- Chuyển sang dùng uuidv4 cho article và author
- Fix bug khi mở entertain category (Trong code ghi nhầm thành Entertainment)
- Các cửa sổ của articles sau khi thêm hoặc xóa giờ sẽ đồng bộ với nhau
- Giờ chỉ có thể mở một window cho mỗi chức năng
- SingleTon cho Database class
- Xử lí encoding với unicode khi mở để đọc báo