曦远 (DealiAxy)一份私人的文字刊物

StarBlog
返回文章列表折页手记阅读全文
OneCat开发笔记

OneCat Development Notes: 0. Project Introduction and Some Rambling Thoughts in the Preface

Preface I happened to remember this project during the Spring Festival holiday This year's Spring Festival holiday I spent more time at home because of the rain, so while messing around on the computer I suddenly thought of the OneCat project After tinkering with it a bit and getting it to run again, I found it's pretty decent just as an aggregated reading tool hhh Then I recalled the development experience of the OneCat project: the first time trying to develop a distributed system, the first time trying NLP with deep learning methods, the first time encountering recommendation systems, the first time trying Docker deployment... As the last project of my university years, I wanted to take it seriously, or

曦远 (DealiAxy)约 11 分钟
目录4 个章节

Preface

I happened to remember this project during the Spring Festival holiday

This year's Spring Festival holiday I spent more time at home because of the rain, so while messing around on the computer I suddenly thought of the OneCat project

After tinkering with it a bit and getting it to run again, I found it's pretty decent just as an aggregated reading tool hhh

Then I recalled the development experience of the OneCat project: the first time trying to develop a distributed system, the first time trying NLP with deep learning methods, the first time encountering recommendation systems, the first time trying Docker deployment...

As the last project of my university years, I wanted to take it seriously, so that maybe when I look back on these four years I won't feel like I wasted my time~

Although I ran into quite a few difficulties during development, I also learned a lot. After the defense I barely looked after this App and never released it. To see it through from beginning to end, I decided to write a series of blog posts introducing the process of developing the OneCat project from scratch, and to restart development and add more features

What Is OneCat

First, let's address the question of what it is.

OneCat, Chinese name "壹喵", is my undergraduate graduation project. It is an App that combines aggregated reading, a recommendation system, aggregated search, a community, and other features

Origin of the name: it came to me by chance. "壹" means you only need one App; "喵" is because I rather like cats, so I chose a cat as the App's logo. (Naming really is a difficult thing)

App Screenshots

I'll just put up the App pictures. Nobody can see all that stuff in the backend; only the frontend is what users perceive most directly.

LoginRegisterAbout
image-20220214170849149image-20220214170908135image-20220214171018551
HomeCategory SubscriptionsArticle Reading
image-20220214171259991image-20220214171332923image-20220214172014454
User ProfileTrending Across the WebArticle Comments
image-20220214172102039image-20220214172136668image-20220214172356019

Limited by space, I'll just post a nine-grid~

Project Architecture

OneCat is mainly divided into two parts: the backend programs running on the server side, and the application running on the mobile client.

The server side is divided into modules such as data services, trending across the web, the recommendation system, and aggregated search.

Data services include:

  • Web information collection (crawlers),
  • Data caching (MongoDB database),
  • Data cleaning (NLP with a deep-learning BERT model, Chinese text classification),
  • Data persistence and Restful APIs for accessing data (DjangoRestFramework), among other modules;

Trending across the web is based on data from the data services, providing a trending list similar to "hot searches" so you can quickly learn about currently popular events;

Recommendation system uses multiple recommendation methods including clustering-based recommendation, machine-learning algorithms (collaborative filtering), and a latent factor model based on association-rule recommendation (deep learning);

Aggregated search includes a metasearch engine and the corresponding data APIs.

_EOF_

OneCat Development Notes: 0. Project Introduction and Some Rambling Thoughts in the Preface

本文作者:
程序设计实验室
版权声明:
本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

相关文章

C#学习(三)深入理解委托、匿名方法和-Lambda-表达式

前言 lambda的概念建立在委托的基础上,委托,实现了类型安全的回调方法。在.NET 中回调无处不在,所以委托也无处不在,事件模型建立在委托机制上,Lambda 表达式本质上就是一种匿名委托。本文中将完成一次关于委托的旅行,全面阐述委托及其核心话题,逐一梳理委托、委托链、事件、匿名方法和 Lambda 表达式。 委托的定义 了解委托,从其定义开始,通常一个委托被声明为: public deleg

2021-12-18 · C# · 约 1 分钟

操作系统学习二:进程同步与互斥之生产者-消费者问题--NetCore实现

目的 1. 掌握进程(线程)的同步与互斥。 2. 掌握生产者消费者问题的实现方法。 3. 掌握VC的多线程编程方法。 内容 本实验要求设计并实现一个进程,该进程拥有3个生产者线程和1个消费者线程,它们使用10个不同的缓冲区。需要使用如下信号量: 一个mutex信号量,用以阻止生产者线程和消费者线程同时操作缓冲区队列; 一个full信号量,当生产者线程生产出一个物品时可以用它向消费者线程发出信号;

2022-06-17 · 计科基础 · 约 1 分钟

Android开发:在Linux系统上使用ADB连接Android手机

前言 由于 Linux 系统的安全性设置等原因,非 root 用户使用外部设备或者某些硬件接口会受到限制。Google 官方提供的 SDK 并不能直接工作,如找不到设备或者显示一堆问号以及 Permission Denied。 方法 记得以前有看过 Google 官方提供的解决方案,即将指定的 USB 设备读写权限赋予普通用户。 首先使用 lsusb 命令查看连接到计算机的 usb 设备,找到 A

2021-12-18 · Android开发 · 约 1 分钟

讨论

共 0 条

良言一句三冬暖,恶语伤人六月寒。

加载评论中…