GithubHelp home page GithubHelp logo

apfirebolt / vue3-express-quasar-polls Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 1.0 775 KB

A polls app with multi user authentication made in Vue 3, Express, Typescript and Quasar

JavaScript 33.05% Vue 43.37% TypeScript 21.23% SCSS 1.04% HTML 1.31%
vue3 vue3-typescript vue3-composition-api vue quasar-framework quasar-cli vee-validate expressjs express mongoose

vue3-express-quasar-polls's Introduction

User Polls App - Web application for creating and voting on public polls ⚡️

Project Briefing

This is a polls application similar to what you create as a sample application when you learn Django through Django docs. It is a multi-user system in which each user can create polls and add choices. Other users on the forum would then be able to search polls and vote on them. The polls on which a given user has voted would be displayed on the dashboard page of the user logged in. The project is still in progress and the requirements are still in development. It is created in MEVN stack using latest version of Vue and Typescript.

Made with ❤️ by @apfirebolt

Requirements

  • Contains token based user auth system.
  • Each user can perform CRUD on Polls.
  • Each poll would have choices, choices can be anywhere between 3 to 10.
  • Users would be able to see which users voted on what option on each poll, they would also be able to search for polls and vote.
  • User Search functionality added, users can be searched and on clicking it would redirect to their detail page.
  • On the details page of the user, all polls created by the user would be displayed in tabular format.

Built With

Project setup

Simply install node modules for both frontend and backend, the project is already configured to serve build content files in production which is generated by Vue which resides inside the build folder.

Concurrently, a package is used for development and allows us to launch both frontend and back-end in one go using single command. Alternatively, in dev mode you can run both the applications on separate ports, cors is enabled in this project for the back-end.

npm install
npm run dev

For production, build the frontend of the app and then run the backend app only.

npm run build
quasar dev
quasar build

Customize the configuration

See Configuring quasar.conf.js.

Database Architecture

  • MongoDB is used as database which works pretty smoothly with Javascript and other Javascript frameworks.
  • Mongoose ORM is used to define document schemas and perform complex queries.
  • It has 2 models namely 'User' and 'Polls'.
  • Nested or Embedded documents is used for Choices within a poll.

Project Screenshots

Screenshots of few pages which are less likely to change in terms of design are added.

Below is the screenshot of the Poll List page, it shows how polls would be displayed, there might be minor changes in it like who opened it and more in future.

alt text

Adding a poll screenshot

alt text

Adding choices in the poll while creating it through modals.

alt text

vue3-express-quasar-polls's People

Contributors

apfirebolt avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

cgb-vue-quasar

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.