Съдържание на документа
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:
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.
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.
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.
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.
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.