IndieDev
Description
This project was created as a semester long, team based project. IndieDev is a social media site for Game Developers, Game Designers, Artists, Musicians, and Creatists to collaborate and share concepts/ideas. Furthermore, IndieDev is a web application that allows creators to interact with others in a social media environment. IndieDev provides a space for individual developers to connect with other creators to build/design full-fledged video games. In addition, they’re able to showcase their personal projects for other developers to view. Since IndieDev is a social media site, users will be able to create posts, like, and comment on posts. Also, users can select roles that represent their interest and can direct message each other. Users can have in-depth profiles that’ll highlight their past experiences, projects, and style. By completing this project, the team was able to obtain knowledge on various technological tools that helped create this full-stack application.
My Role:
As a full-stack developer, I created and implemented core server-side functionalities using Java, Spring Boot, and various dependencies. My primary responsibilities included:
- Designing and implementing the MySQL database schema
- Creating RESTful APIs for user management and content operations
- Implementing CRUD functionality for posts, profiles, and portfolios
- Building responsive frontend interfaces using Thymeleaf templates
- Integrating security features and user authentication
- Managing project documentation and API specifications
- Developing moderation and administration tools
Technical Details:
The backend infrastructure leverages several key technologies:
- Spring Boot framework for:
- MVC architecture implementation
- RESTful API development
- Security configuration
- Dependency management
- MySQL (Apache XAMPP) for data management:
- User account information
- Profile and portfolio data
- Posts and interactions
- Messaging system
- Report management
- Development Environment:
- IntelliJ IDEA for Java development
- XAMPP for database management
- Git for version control
The frontend implementation includes:
- Thymeleaf template engine for:
- Server-side rendering
- Dynamic content generation
- Form handling
- JavaScript functionality for:
- Real-time interactions
- Form validation
- API communication
- User experience enhancements
Challenges and Solutions:
-
Spring Boot Implementation
- Challenge: Learning and implementing Spring Boot for backend development with limited prior experience
- Solution: Developed systematic learning approach through documentation, course materials, and practical implementation while maintaining project timeline
-
User Authentication
- Challenge: Implementing secure user authentication and role-based access control
- Solution: Utilized Spring Security with custom configurations to manage user roles and access permissions
Results and Impact:
The platform successfully achieved:
- Comprehensive user profile and portfolio system
- Interactive post creation and management
- Real-time messaging capabilities
- Role-based content moderation
- Multi-level user hierarchy (Users, Moderators, Administrators)
- Secure authentication and authorization
- Portfolio showcase functionality
- Report management system
Skills Learned and Demonstrated:
- Spring Boot application development
- MVC architecture implementation
- Database design and optimization
- Security implementation and user authentication
- RESTful API development
- Full-stack web development
- Team collaboration and project management
- Documentation and technical writing
Want to explore the technical details? Check out our codebase on GitHub or review our comprehensive SRS documentation!
Technologies
Platform:
Web
Stack:
HTML, Vanilla CSS, JavaScript, MySQL, Java, Spring Boot, Thymeleaf
Website:
N/A