Екипна работа - Задание

Teamwork projects: public defense - JS Applications - ноември 2016


Материали от темата

Съдържание на документа

Teamwork Project Assignment for the JavaScript Applications Course @ SoftUni

Design and implement a SPA (Single-Page Application) by your choice. It must follow several rules though. You will find everything you need to know about the project in this document.


For the project development you must use:

JavaScript – your main functionality must be in JS

AJAX, REST and communication with the back-end

ReactJS for rendering the templates for the UI

Models, Views, Controllers, Services, Helpers and Entities for the main functionality

HTML & CSS – you must provide some normal UI for the user

You may use CSS generating frameworks like Bootstrap etc.

Kinvey – as your back-end, use the Kinvey API, since it is the easiest and most appropriate to use

Optionally you are allowed to use something different from ReactJS for the template rendering, or Kinvey, for the back-end logic, but these 2 are closest to the course’s target, so they are highly recommended.

Team by Choice

You are allowed to work in a team by choice.

Your team should consist of 2 to 5 people.

Everyone should use a source control system.

Use Git or other source control system for your project development.

Use GitHub as your source-control system.

Your source code should be open-source and public in Internet.

Project Scope

Your project should implement at least the following functionality:

User registration, login and logout.

View some content (e.g. blog articles, listings, photos, issues, publications).

Create new content (e.g. post new blog article, post new listing, upload new photo, create new issue).

Edit existing content(e.g. editing blog post content, photo captions, issue status).

Delete existing content(e.g. deleting posts, issues, photoes, publications).

Your project should keep its data in a Kinvey or some other backend service.

Requirements for the Team Projects

The minimum number of application pages and database tables required for the project depend on the count of team members.

Minimum (3 + team_members_count) pages (views).

Minimum 3 database tables (or data collections / entities).

Implement more functionality by choice. Larger teams should implement more functionality.

Example Project


A simple Single-Page Application which supports User Registration / Login / Logout, Post Creation, Post Listing, Top Posts etc.

You can find its source code here.

NOTE: This project does not support the full functionality you need to implement for your team project. Its purpose is only to give you a surface idea of what your application should be like. You are NOT ALLOWED to copy this application’s source code directly. You are ALLOWED to use any element of it as an inspiration to your team project.

Forbidden Techniques and Tools

Your project should be created mainly by you and your team.

You are not allowed to copy a project from Internet and present it as your development.

You can use external libraries, frameworks and tools, but not to clone a project and present it as yours.

Commit Logs

Each team member should have at least 5 commits (changes) in the project repository.

Please commit every day during the project development to demonstrate your work progress.

More commits (especially in more than the last 1-2 days) are better during the project assessment.


Submit the URL of your project source code as deliverable, e.g. https://github.com/DCay/SoftUni-Work/tree/master/SoftUni-TechModule-Blog. 
Each team member submits the same source code URL. Put the following assets in the project repository:

The complete source code of your project (JS, HTML, CSS, images, scripts and other files).

Any other project assets (optionally): documentation, design, tests, etc.

Public Project Defense

Each team will have to deliver a public defense of its work in front of the SoftUni trainers.

The teams will have only ~15 minutes for the following:

Demonstrate the application’s functionality (very shortly).

Show the source code and explain briefly how it works.

At least one team member should come at the defense.

Hints for better presentation:

Be well prepared for presenting maximum of your work for minimum time.

Open all project assets beforehand to save time: open your site in the browser, open your project repository page to show the commit logs, etc.

Test how to connect your laptop with the multimedia projector before the defense to save time.

Assessment Criteria

Functionality – (all the required functionalities specified in this document, correct use of AJAX, REST and JSON for accessing the server-side data) – 0…10

Code quality – (well-structured code, split into modules and files, good naming, formatting, etc.) – 0…5

Security – (correct data validation, absence of cross-site scripting / unescaped data in the UI, etc.) – 0…2

Teamwork – (GitHub used; each team member contributed in 3 different days; distribution of tasks) – 0…10

Bonus – (bonus point are given for implementing optional functionalities) – 0…3


All projects should be submitted not later than 07-December-2016.