/End-to-end-JS-Apps-Teamwork

Teamwork MEAN Stack Application for End-to-end apps Course

Primary LanguageCSSMIT LicenseMIT

End-to-end-JS-Apps-Teamwork

Team work to End-to-end apps with Javascript Course

Project Description:

Design and implement an End-To-End JavaScript application. It can be a discussion forum, blog system, e-commerce site, online gaming site, social network, or any other Web application by your choice.

The application should have: public part (accessible without authentication), private part (available for registered users) and administrative part (available for administrators only).

General Requirements:

Your Web application should use the following technologies, frameworks and development techniques:
  • Have at least 15 different dynamic web pages
  • Use NodeJS (Express is allowed) for the server (use an MV* pattern)
  • Use AngularJS for the client
  • You should use Jade template engine for generating the UI
  • Use MongoDB as database back-end
  • Use Mongoose to access your database
  • Using Repository pattern/Unit of Work is not mandatory
  • Create at least two tables with data with server-side paging and sorting
  • You can use Kendo UI Grid or generate your own HTML tables
  • Use responsive design (it may be based on Twitter Bootstrap)
  • Use Passport for managing users and roles
    • Your registered users should have at least one of the two roles: user and administrator
  • Use at least one AJAX form and/or WebSockets communication
  • Write few unit tests for your controllers logic
  • Apply error handling and data validation to avoid crashes when invalid data is entered
  • Handle correctly the special HTML characters and tags like
  • Prevent yourself from security holes (XSS, XSRF, Parameter Tampering, etc.)
  • Use a source control system by choice for team collaboration.

Public Part

The public part of your projects should be visible without authentication. This public part could be the application start page, the user login and user registration forms, as well as the public data of the users, e.g. the blog posts in a blog system, the public offers in a bid system, the products in an e-commerce system, etc.

Private Part (User Area)

Registered users should have personal area in the Web application accessible after successful login. This area could hold for example the user's profiles management functionality, the user's offers in a bid system, the user's posts in a blog system, the user's photos in a photo sharing system, the user's contacts in a social network, etc.

Administration Part

System administrators should have administrative access to the system and permissions to administer all major information objects in the system, e.g. to create / edit / delete users and other administrators, to edit / delete offers in a bid system, to edit / delete photos and album in a photo sharing system, to edit / delete posts in a blogging system, edit / delete products and categories in an e-commerce system, etc.

Optional Requirements

  • Nice looking UI supporting of all modern and old Web browsers
  • Good usability (easy to use UI)