Dimensional Impression, ein von SpringCloud erstelltes Animationskommunikationsforum
Vorwort
Es wird gesagt, dass die Hälfte der chinesischen Programmierer auf Github zweidimensional sind Um mehr Sterne anzulocken Ich habe dieses Animationsaustauschforum entwickelt, während ich die SpringCloud-Technologie erlernte.
Projekteinführung
Acimage ist ein auf Spring Cloud basierendes Animationsaustauschforum, dasFront- und Back-Endtrennt . Das Backend verwendet SpringCloud + Mybatis-Plus + Reids + Rabbitmq + Elasticsearch . Das Frontend verwendet Vue + ElementUi + Vite . Das Projekt wurde gestartet. Liebe Github 2D-Leute, warum gebt mir nicht einen Stern(๑•̀ㅂ•́)و✧.
URL
* Dimensional Impressiono( ≧▽≦)ツ~Animation Exchange Forum www.acimage.top (Gilt nur für die Webseite. Wenn der Bildschirm zu klein ist, können Sie den Browser für bessere visuelle Effekte entsprechend vergrößern).
Titelseite
Forumseite
Systemarchitektur
Projektfunktion
Benutzerrezeption
Verwenden Sie Bilder, um Bilder zu identifizieren . Laden Sie also Bilder hoch, um ähnliche Bilder im Forum und die Themen, zu denen sie gehören, zu identifizieren.
Diversifizierte Suche : Sie können gleichzeitig nach Schlüsselwörtern, Kategorien, Tags und Sortierfeldern suchen und passenden Text anhand von Schlüsselwörtern hervorheben.
Themenrankings (geordnet nach Sternchen, Anzahl der Aufrufe, Anzahl der Kommentare usw., aktive Zeit).
Benutzerrankings (geordnet nach Anzahl der Themen, Sternen usw.).
Kategorien, Tags und klicken Sie, um Themen herauszufiltern, die relevanten Kategorien oder Tags entsprechen.
Zeigen Sie die neuesten aktiven Themen in Echtzeit an .
Sensible Wortfilterung , Bildkomprimierung .
Nachrichtenbenachrichtigung
Persönliche Aktualisierungen anzeigen und persönliche Informationen ändern.
Anmelden, Registrieren, Abmelden, Bestätigungscode zur Verhinderung von Wischen und E-Mail-Bestätigung .
Veröffentlichen Sie Themen, Kommentare, Sterne usw.
Backend-Management
Eine relativ vollständige RBAC-Berechtigungssteuerung kann Benutzerrollen, Rollenberechtigungen, Schnittstellenberechtigungen usw. dynamisch anpassen.
Grundlegende Website-Datenanzeige, Anzahl der Besucher, Anzahl der Schnittstellenaufrufe usw.
Karussell-Bildverwaltung auf der Startseite.
Themen, Kommentare, Benutzerverwaltung.
Projektfunktionen
JWT implementiert Single Sign-On, einheitliche Identitätsauthentifizierung und Authentifizierung am Gateway sowie eine vollständige RBAC- Berechtigungskontrolle.
Verwenden Sie Redis+Lua-Skript+geplante Aufgaben, um sich häufig ändernde Daten (Ansichten usw.) regelmäßig beizubehalten.
Mit Redis + Lua-Skript + benutzerdefinierten Anmerkungen kann nur eine Anmerkung verwendet werden, um den Fluss von IPs, Benutzern und das gesamte Anforderungsvolumen zu begrenzen.
Der Dhash -Algorithmus wird verwendet, um die Funktion der Bilderkennung mit Bildern zu realisieren, und der Effekt ist nicht schlecht.
Alle hochgeladenen Bilder werden mit WebP komprimiert, was den Bandbreitendruck erheblich reduziert.
Projektverzeichnis
Backend-Dienste
acimage_gateway : Gateway, einheitliche Identitätsauthentifizierung und -authentifizierung sowie aktuelle Begrenzung für Benutzer bzw. Gesamtanfragevolumen.
acimage_community : Community-Dienst, verantwortlich für Kernfunktionen im Zusammenhang mit Forumsthemen
acimage_image : Bilddienst, verantwortlich für das Hochladen von Themenbildern, das Hochladen von Avataren und das Identifizieren von Bildern mit Bildern usw.
acimage_admin : Verwaltungsdienst
Backend-Modul
acimage_common : öffentliches Modul, das Entitätsklassen, öffentliche Interceptoren, öffentliche Konfigurationen und öffentliche Toolklassen usw. speichert.
acimage_feign : Platzieren Sie den Feign-Client jedes Moduls
Frontend
vue_manage_system : Hintergrundverwaltungsseite
vue_acimage_web : Portalseite
andere
doc : einige Dokumente, Bilder und Datenbankdateien
Ausführen und bereitstellen
Das Projekt wird noch verbessert und der Betriebs- und Bereitstellungsprozess wird später aktualisiert .
Importieren Sie die drei Datenbanken unter doc/sql jeweils in MySQL . Die vier Datenbanken sind die Datenbanken, die den vier Front-End-Diensten entsprechen.
Konfigurieren Sie die entsprechende Adresse oder das Kontokennwort von MySQL, Redis, Rabbitmq und Nacos in der Datei application-dev.yml jedes Dienstes
Geben Sie die Qiniu Cloud-Kontoinformationen in „application-qiniu-template.yml“ in „acimage_common“ ein, einschließlich „access-key“ , „secret-key“ , „domian“ , „bucket “, oder weisen Sie diesen vier Attributen einen beliebigen Wert zu (darf nicht leer sein, sonst NPE ), aber „This“. So können Sie keine Bilder hochladen. Und benennen Sie application-qiniu-template.yml in application-qiniu.yml um
Konfigurieren Sie die Nacos -Adresse und die Sentinel -Adresse in application.yml unter dem Modul acimage_common (wenn Sentinel nicht konfiguriert ist, hat dies keine Auswirkungen auf den Betrieb).
Starten Sie Nacos, Redis, RabbitMQ, MySQL
Starten Sie acimage_user , acimage_community , acimage_image und acimage_gateway nacheinander. Andernfalls wird möglicherweise ein Fehler aufgrund von Problemen bei der Erstellung der Rabbitmq -Warteschlange und der Bindungssequenz gemeldet.
Klicken Sie nach dem Ausführen des Frontends (Einzelheiten finden Sie in der README-Datei von vue_acimage_web ) auf den standardmäßig angezeigten Link, um auf die Startseite zuzugreifen.
Anmeldung an der Rezeption**: Benutzer: wk, Passwort: wk123456 (Es gibt mehrere andere Benutzer, die aus der Datenbank-SQL-Datei ersichtlich sind, und die Passwörter lauten alle Benutzername 123456)
Verbessern Sie die RABC-Berechtigungskontrolle, die einheitliche Identitätsauthentifizierung und die Authentifizierung am Gateway
Fügen Sie E-Mail-Dienste, E-Mail-Bestätigung, Bestätigungscodes usw. hinzu.
Bilder in Minio speichern (ursprünglich in Qiniu Cloud gespeichert)
Diversifizierte Suche mit Elasticsearch, Hervorhebung von Schlüsselwörtern
Fügen Sie eine Benachrichtigungsfunktion für Benutzernachrichten hinzu
Verwenden Sie redis+lua, um Themen und Seitenaufrufe stapelweise aus dem Cache zu extrahieren, um die Anzahl der Kommunikationen zu reduzieren und Daten in Echtzeit anzuzeigen.
Kommentar-Emoticons hinzufügen
Follow-Funktion hinzufügen
Verbessern Sie die Konfiguration und Verwendung von Sentinel und Nacos
Crawler-Modul hinzufügen
Verbessern Sie Unit-Tests
Warte, warte, warte
kommunizieren
Das Projekt wurde ursprünglich zum Erlernen der Technologie entwickelt, es gibt jedoch immer noch viele Mängel. Sie können mich gerne korrigieren. Wenn jemand Interesse hat (ich hoffe wirklich, dass jemand interessiert ist) oder wenn Sie auf Probleme mit dem Projekt stoßen oder Vorschläge haben, ein Problem anzusprechen, können Sie sich zur Kommunikation an die E-Mail-Adresse [email protected] wenden oder der Gruppe 692992463 beitreten. Wenn es Ihnen gefällt, denken Sie daran, ihm einen Stern zu geben.
Website-Screenshot
Webseite
Admin-Terminal <br> Posten Sie gerne ein paar Bilder des Managementsystems. Wie auch immer, die Managementsysteme sehen alle gleich aus.