As I brainstormed ideas for my next project, the concept of a community platform dedicated to unique, strange, and thought-provoking ideas emerged. I thought this would be an engaging idea to enhance my programming skills. The website allows users to post a variety of ideas from peculiar to profound. Users can explore each other's ideas and if they have one on their mind, they can create a profile and post it. Other authorized users can comment on the idea and give it a rating from 1 to 10. A terrible idea would be rated 1 and a brilliant idea would be rated 10. Users can see how many comments an idea has and how many people rated it. The ratings are tallied up to give an average and this offers insight into an idea's popularity. A sorting option allows users to see the most recent ideas, highest ranked and the lowest. If they find someone else's idea interesting, they can navigate to contributors' profiles, explore their timeline of posts and read a brief bio description.
I crafted a flow chart of the user journey from landing on the home page to logging in, posting ideas and viewing other people's posts. I have found the process of building an application easier when everything is broken down into manageable segments. Next, I constructed the basic wireframe for the UI to clearly show my vision and formulated database models for holding and interconnecting various datasets. I always go into my planning with the idea of a scalable application. With my UI vision in mind, I sought out a free Bootstrap/CSS template online which provided an opportunity to refine my skills by collaborating with and adapting existing code.
This was the first time I have used someone else's prebuilt template for my UI design, introducing a unique set of challenges. While integrating backend data into the frontend proved manageable, the real hurdle was altering some of the design to fit my vision. This required careful analysis of the code with the use of ChatGPT as a tool for code comprehension and navigation. Despite attempting to implement infinite scroll initially, I acknowledged the need for further skill development. Deciding to prioritize efficiency, I opted to avoid potential roadblocks and focus on other aspects of the project. This project had an array of features such as sorting options, profile editing, image uploads, post and account deletion, idea rating, and commenting. Bringing together these features demanded careful planning and extensive online research. The intricacies of averaging user ratings, calculating comment and rating counts, and executing database querying presented challenges, providing valuable learning experiences along the way.
I would like to enhance the user experience by incorporating infinite scroll on the home page. I think this would ensure a more seamless user experience as users explore an ever-expanding array of posted ideas. The aim of this feature is to captivate users' attention for a prolonged and engaging experience. On left hand side of the home page the links to different categories doesn't navigate anywhere so I would like to add a category option when posting an idea. This would allow users to view posts based on individual interests. Furthermore, I would implement a follow feature which would enable users to stay updated with the latest posts from their favourite contributors and foster a community.