MyLanit - Photo Galleries and Photo Contests Web Part for Corporate Portal
- Published on
- • 8 mins read•--- views
Content `Module Video Presentation` requires special access key
Please, communicate with administrator to obtain the access key here
Task
Develop a web part for displaying and creating photo galleries and photo contests on the internal corporate portal. Each photo contest in the database has a photo gallery with limited functionality and hidden controls. The solution is implemented for SharePoint and supports comments, comment likes, and photo likes.
Implementation
Built with React JS and class components. Virtual routing is handled by Redux-Router, with a global state managed by Redux. Various libraries are used for image uploading; for example, masonry grid is used to display photo tiles, infinite scroller for endless loading, and Redux Forms for form handling. Network requests are managed via axios.
Server and client code were developed in parallel, requiring regular communication with the backend developer for synchronization.
The server manages an image library in its database. Voting statistics are stored in SharePoint list objects, and images are uploaded there as well. A server-side process was created to monitor the end date of voting and display the results.
Source Code above is mutated for demonstration purposes
Gallery/Photo Contest Creation Form:
Content `Source Code` requires special access key
Please, communicate with administrator to obtain the access key here
The tinyMCE editor was chosen for the photo/photo contest description window. A wrapper method was written to connect it to the Redux Forms library:
Content `Source Code` requires special access key
Please, communicate with administrator to obtain the access key here
Gallery administration component:
Content `Source Code` requires special access key
Please, communicate with administrator to obtain the access key here
TFS:
Content `TFS Structure Showcase` requires special access key
Please, communicate with administrator to obtain the access key here
Admin Interface:
Content `Admin Interface Presentation` requires special access key
Please, communicate with administrator to obtain the access key here