Giter Site home page Giter Site logo

dabaitudiu / instant-share Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 37.86 MB

An extensible, highly modularized and structured backend framework demo for constructing twitter-like website using nodejs + koa2 + mysql + redis. Include complete and compact unit testing for maintainence and extension. demo: http://shareins.xyz

Home Page: http://shareins.xyz

License: MIT License

JavaScript 78.62% CSS 1.93% HTML 19.45%
nodejs redis koa2 mysql

instant-share's Introduction

Instant Share

Instant Share is an extensible, highly modularized and structured backend framework demo for constructing twitter-like website. After register and login, people can share instant posts, add images, and @others during posting. They can freely change personal info and reponse to the others. Using Sequelize ORM, the database system is easy to maintain or update. The website also uses Redis to save public pages as cache to enhance efficiency.It is embedded with intact unit testing for maintainence and extension.


  • Keywords: JavaScript, Node.js, Koa2, Redis, MySQL, Sequelize ORM, application architecture, unit testing
  • Demo: http://shareins.xyz
  • Demo Account: {userName: ciri, passWord: ciri}

0.Overview

The focus of this project is to practice backend development ability to an enterprise-level, which needs high-concurrency, highly ordered architecture, and intact unit testing mechanisms. Spring, Node.js, Go, are nowadays popular tools and languages applied for backend development. Thus this project is my second step in my backend-practice triology. Compared with previous CoderUCI Forum, this project:

  • Focus less on front-end, just ensure the essential components are working
  • Redis: used for 'Sqaure Discovery Page', cahce the entries for fast access
  • Sequelize ORM: Another way to manipulate database. Increases code unity, avoid SQL sentences, and convert everything to object manipulations
  • Session: complete intact register & login & session transfer, applied encryption method to protect database leakage.
  • Architecture: This project strictly follows the MVCS (model, view, controller, service) framework, convenient and easy to maintain and debug.
  • code standards:Embedded with eslint, jsdoc comment semantics, and complete unit testing. Modeling the development process in an enterprise.

Framework

Testing

By testing, it's easier for us to check the compatibility of new features and original functions.

1.Pages and Functions Introduction

Home Page

At home page, you can view the activities of people you are following. The Load More function here is to enhance website readability.

Share moments

By simply typing your thoughts or upload an image, you can share your splendid moments.

Follow/Unfollow

You can follow/unfollow a person in his profile page.

Check posts that mentioned Me

Clicking "@ Me", you can find posts mentioned you

Reply posts / at others

If you want to @others, simply type "@" in the text area. To reply to a message, press "Reply"

Change personal info

Go to "Settings" page, you can change your personal info. Remember to save before your leave.

2. Deployment

2-1. Install nodejs & npm

Please visit Node.js to install these two essentials.

2-2. Install npm packages

cd Instant-Share/
npm install

2-3. Install & Setup MySQL & Redis

You can find the keys at src/conf folder

2-4. Start / Test

npm run dev #(development)
npm run prd #(production)
npm run test #(test)

3. Acknowledgement

This project takes Shuangyue's instructions as references. I am very grateful for the teacher's help during the process of development. Finishing this project greatly enhanced my understanding of backend development and enterprise development workflow.

4. License

MIT License © Zhenhan Li. University of California, Irvine.

instant-share's People

Contributors

dabaitudiu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.