This project aims to develop a comprehensive forum application titled "Literary Lions". The application is divided into various components, including backend, frontend, database design, Docker configuration, and additional functionalities.
- Framework: Choose a backend framework that supports SQLite (e.g., Flask, Django, Express.js).
- Database: SQLite is used for efficient data management.
- Authentication: Includes user authentication with secure password storage.
- Session Management: Utilizes UUIDs for robust session management.
- API Endpoints: Handles user registration, login, post creation, post liking/disliking, comments, category association, and filtering.
- Pages: Includes pages for user registration, login, forum homepage, post details, and user profile.
- Interactivity: Supports form submission for posts/comments, like/dislike functionality, and category filtering.
- ERD: Entity Relationship Diagram to define the database schema.
- Tables: Designed for users, posts, comments, categories, likes/dislikes.
- Dockerfile: For setting up the application's environment and dependencies.
- Container Management: Includes scripts for building and running the container.
- Design an ERD.
- Create tables for users, posts, comments, categories, and reactions.
- Define relationships (foreign keys, one-to-many, many-to-many).
- Set up the backend framework.
- Configure SQLite with the backend.
- Implement user authentication and session management.
- Develop API endpoints for all required functionalities.
- Implement password encryption for secure storage.
- Create the user interface with HTML/CSS/JS.
- Connect the frontend with the backend through API calls.
- Ensure responsiveness and interactivity.
- Like/Dislike Functionality: Backend and frontend components for post and comment interactions.
- Post Filtering: Backend logic and frontend components for filtering posts by categories.
- Dockerization: Write the Dockerfile and manage Docker containers.
- Bonus Functionality (Optional): Search feature, file upload for users, editable user profile page.
- Backend unit and integration tests.
- Frontend testing, including forms and interactivity.
- Docker deployment testing.
- Detailed
README.mdfor project setup and usage. - Code comments for maintenance and clarity.
- Initialize a Git repository.
- Regular commits with clear, descriptive messages.
- Sprint 0: Project setup.
- Sprint 1: Database design and backend setup.
- Sprint 2 to 5: Core development and Docker deployment.
- Sprint 6: Implement optional features and final testing.
- Sprint 7: Final documentation and project wrap-up.
- Methodology: Agile methodology with regular stand-ups.
- Tools: Use tools like JIRA or Trello for task tracking.
- Prioritization: Maintain and prioritize a backlog of tasks for each sprint.
If this structure aligns with your vision for the project, the next step would be to commence with the database design or backend setup based on your preference. Please indicate which task you'd like to start with or if there are specific areas you wish to focus on first.