Advertisement
whitestarrr

Untitled

Oct 26th, 2016
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.97 KB | None | 0 0
  1. Practical Project Assignment for the Software Technologies Course @ SoftUni
  2. Design and implement a simple Web-based application, e.g. blog / forum / photo album / listings site / other.
  3. Technologies by Choice
  4. Use are free to choose the technology stack for your project development, e.g.
  5. • JavaScript + Express.js + MongoDB
  6. • PHP + Symfony + MySQL
  7. • C# + ASP.NET MVC + Entity Framework + SQL Server
  8. • Java + Spring MVC + Hibernate + MySQL
  9. You are allowed to use in addition other technologies like Bootstrap, SASS, LESS, MongoDB, Node.js, etc. You are allowed to use frameworks like AngularJS, ReactJS, Laravel, Symfony, Nancy, Spark, Play, JSF, etc. You are allowed to use development tools, libraries and resources like Web design templates, code generators, code libraries, JavaScript libraries, PHP composer packages, .NET NuGet packages, Java Maven artefacts and others.
  10. Team by Choice
  11. You are allowed to work in a team by choice or to work individually.
  12. Requirements for the team projects:
  13. • All team members should be part of the “Software Technologies” course at SoftUni.
  14. • Onsite and online students can work together (mixed teams).
  15. • Teams can have up to 6 members.
  16. • All team members should use source control repository (like GitHub).
  17. • Larger teams should develop larger projects (see below).
  18. Requirements for individual projects:
  19. • Students are allowed to work alone without a team.
  20. • Individuals should use source control repository (like GitHub).
  21. Everyone should use a source control system.
  22. • Use Git or other source control system for your project development.
  23. • Use GitHub, Bitbucket, CodePlex or other team collaboration platform.
  24. • Your source code should be open-source and public in Internet.
  25. Project Scope
  26. Your project should implement at least the following functionality:
  27. • User registration, login and logout.
  28. • View some content (e.g. blog articles, listings, photos, issues, publications).
  29. • Create new content (e.g. post new blog article, post new listing, upload new photo, create new issue).
  30. Your project should keep its data in a database or in a backend service:
  31. • Use at least 2 tables (collections) with a relationship, e.g. users and blog posts.
  32. • Use a database (like MySQL or MongoDB) or cloud-based backend (like Kinvey, MongoLab or RedisLab).
  33. Your project should implement at least 4 pages (views).
  34. You are allowed to create a project which is very similar to the “Blog System” developed during the course. You are allowed even to take the Blog System source code and modify it for your needs.
  35. Requirements for the Individual Projects
  36. Individual projects can be small, like the “Blog System” developed during the course.
  37. • Minimum 4 pages (views) and 2 database tables.
  38. • Implement user registration, login, view content, create content.
  39. • Optionally implement more functionality.
  40. Requirements for the Team Projects
  41. Larger teams should develop larger projects. The minimum number of application pages and database tables required for the project depend on the count of team members.
  42. • Minimum (3 + team_members_count) pages (views).
  43. • Minimum team_members_count database tables (or data collections / entities).
  44. • Implement user registration, login, view content, create content.
  45. • Implement more functionality by choice. Larger teams should implement more functionality.
  46. Forbidden Techniques and Tools
  47. • Your project should be created mainly by you and your team.
  48. • You are not allowed to copy a project from Internet and present it as your development.
  49. • You can use external libraries, frameworks and tools, but not to clone a project and present it as yours.
  50. Commit Logs
  51. • Each team member should have at least 5 commits (changes) in the project repository.
  52. • Please commit every day during the project development to demonstrate your work progress.
  53. • More commits (especially in more than the last 1-2 days) are better during the project assessment.
  54. Deliverables
  55. Submit the URL of your project source code as deliverable, e.g. https://github.com/nakov/TurtleGraphics.NET. Each team member submits the same source code URL. Put the following assets in the project repository:
  56. • The complete source code of your project (PHP, Java, C#, JS, HTML, CSS, images, scripts and other files).
  57. • Any other project assets (optionally): documentation, design, database sample data scripts, tests, etc.
  58. • Don’t commit the libraries that can be automatically downloaded by the package manager (npm packages, composer packages, NuGet packages, maven packages).
  59. Public Project Defense
  60. Each team will have to deliver a public defense of its work in front of the SoftUni trainers.
  61. The teams will have only ~15 minutes for the following:
  62. • Demonstrate the application’s functionality (very shortly).
  63. • Show the source code and explain briefly how it works.
  64. At least one team member should come at the defense.
  65. Hints for better presentation:
  66. • Be well prepared for presenting maximum of your work for minimum time.
  67. • Open all project assets beforehand to save time: open your site in the browser, login and open the user / admin panel in another browser, open your GitHub project page to show the commit logs, etc.
  68. • Test how to connect your laptop with the multimedia projector before the defense to save time.
  69. Assessment Criteria
  70. • Functionality – 0…70
  71. o What is implemented? Does it work correctly? Does it have intuitive UI?
  72. o How much effort you have put in this project?
  73. o Is the functionality enough for the team size (larger teams should deliver more)?
  74. o What portion of the work is own code written by your team and what is ready-to-use framework?
  75. • Teamwork – 0…30
  76. o Individual projects show the commit logs in the source control repository.
  77. o Team projects show the commit logs and explain the role of each team member.
  78. • Bonus – 0...30
  79. o Bonus point are given for implementing more than expected.
  80. Sample Projects
  81. The below described projects are sample, just to give you some ideas. You could work on your own project.
  82. Issue Tracker
  83. Design and implement a simple issue tracking system (bug tracker).
  84. Required functionalities:
  85. • User registration (and optionally user profiles) / login / logout.
  86. • View all issues (optionally with paging), without login.
  87. • View issue details, without login.
  88. • Create new issue (after login). Issues have title, description, author, state and submission date and time. States are: New, Open, Fixed and Closed.
  89. Optional functionalities:
  90. • Edit issue (after login). Can change only title, description and state.
  91. • Add new comment for existing issue by visitors – each visitor must fill out his name and comment text.
  92. • Implement a sidebar holding a list of all issues states. Clicking at issue state shows all issues matching this state.
  93. • Functionality for searching by title (as substring).
  94. • Admin panel: add / edit / delete issues and comments, etc.
  95. Blog
  96. Design and implement a simple blog system.
  97. Required functionalities:
  98. • User registration (and optionally user profiles) / login / logout.
  99. • View all posts (optionally with paging), without login.
  100. • Create new post by the blog owner (after login). Optionally, each post may have tags.
  101. Optional functionalities:
  102. • Add comments for every post by visitors – each visitor must fill out his name, email (optionally) and comment text.
  103. • Implement a sidebar holding a list of posts sorted by month / year / etc. and a list of the most popular tags.
  104. • Counter of visits for each post.
  105. • Functionality for searching by tags.
  106. • Admin panel: add / edit / delete posts, comments, tags, etc.
  107. Forum
  108. Design and implement a simple forum (discussion board) system.
  109. Required functionalities:
  110. • User registration (and optionally user profiles) / login / logout.
  111. • View all questions (optionally by category, optionally with paging), without a login.
  112. • Ask a new question by the forum users (after login). Optionally question may have tags and category.
  113. Optional functionalities:
  114. • Implement tags for the forum questions.
  115. • Implement categories for the forum questions.
  116. • Implement adding answers to the questions by the forum visitors – each visitor must fill out his name, email (optionally) and comment text.
  117. • Counter for visits for each question.
  118. • Functionality for searching by question, answer and tags.
  119. • Implement ranking according to user activity.
  120. • Admin panel: add /edit / delete forum posts, tags, answers, categories.
  121. Photo Gallery
  122. Design and implement a simple photo gallery (photo album).
  123. Required functionalities:
  124. • User registration (and optionally user profiles) / login / logout.
  125. • Browse albums and photos (and optionally categories, optionally with paging), without a login.
  126. • Upload photos (after login, optionally validate image size and type) / download photos.
  127. Optional functionalities:
  128. • Create new album in a category.
  129. • Add comments to photos and albums.
  130. • Implement album's ranking system (e.g. vote from 1 to 10 or like / dislike).
  131. • Show the most highly ranked albums in a special section at the main page.
  132. • Functionality for searching by album name / category.
  133. • Admin panel: add / edit / delete albums, photos, comments.
  134. Music Catalog
  135. Design and implement a simple online music catalog holding songs and playlist.
  136. Required functionalities:
  137. • User registration (and optionally user profiles) / login / logout.
  138. • View all playlists / songs (optionally with paging), without a login
  139. • Listen to songs online. Download songs (optionally).
  140. • Upload songs (optionally validate file size and type), after login.
  141. Optional functionalities:
  142. • Create a new playlist.
  143. • Add comments to songs and playlists.
  144. • Implements genres for the songs and playlists.
  145. • Implement playlists' and songs' ranking system. Show the most highly ranked playlists in a special section at the main page.
  146. • Functionality for searching / filtering by playlist name / song name / genre.
  147. • Admin panel: add / edit / delete songs, playlists, genres, comments.
  148. Ads Listing Site
  149. Design and implement a simple ad listing site where users publish their ads and visitors can browse and view them.
  150. Required functionalities:
  151. • User registration (and optionally user profiles) / login / logout.
  152. • View all ads (optionally by category and town, optionally with paging), without a login.
  153. • Post a new ad (optionally with a photo), after login.
  154. Optional functionalities:
  155. • Implement towns and categories for the ads. Implement browse by category / town.
  156. • Post new ads in state “Waiting approval”. Administrators can see and approve them.
  157. • Implement a mini-photo gallery: each ad could hold a set of photos. Users can upload / delete photos. Visitors can view the photos for each ad. One of the photos is designated as primary.
  158. • My ads panel: view / edit / delete own ads (posted by the current user).
  159. • Admin panel: add / edit / delete users, ads, categories, towns.
  160. Deadline
  161. All projects should be submitted not later than 22-December-2016.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement