- As database schema is huge, try to add table as you need not all at once (Suggestion: Prof. Karen)
- Setup Project Repo
- configure development environment
- Set up Git repository with initial commit
- Setup PostgreSQL database connection
- Create basic project structure (routes, controllers, models folders)
- Implement basic user authentication (JWT, bcrypt, sessions, Google OAuth2)
- complete frontend with auth forms (login/reset/signup)
- Mobile-first responsive design setup with TailwindCSS
- complete backend with auth api
- complete unit tests for auth module using Jest
- Basic user registration API endpoint with email validation
- Begin accessibility tags (ARIA, alt text)
- User Profile Management (Basic profile setup, photo upload)
- Image upload functionality with Multer
- Image optimization and compression implementation
- Add password reset & validation (regex, strong password)
- Secure routes with JWT middleware
- Parameterized SQL queries to prevent SQLi
- Frontend validation and form accessibility
- Security tests: SQLi, XSS (OWASP ZAP)
- Profile photo and cover photo management
- Social media linking functionality
- API endpoints for profile CRUD operations
- Frontend React components for user registration and login
- Create and submit progress report and demo video
- City and Category Management (Cities, Recommendation_Categories tables)
- Basic recommendation creation functionality
- Recommendation CRUD API endpoints
- photo upload for recommendations
- Frontend forms for recommendation creation
- Basic search functionality implementation
- Integration tests for recommendation endpoints and E2E Test
- Advanced Search Implementation (multi-filter capability)
- Search by location, category, price range, difficulty level
- Tag system implementation (Recommendation_Tags, Tag_Links tables)
- Search results pagination and infinite scroll
- Frontend search interface with filter components
- Database indexing for search optimization
- Search performance testing and optimization
- Rating and Review System (Recommendation_Ratings table)
- Like/Unlike functionality (Recommendation_Likes table)
- User interaction tracking and analytics
- Recommendation browsing and discovery feeds (Implemented personalized feed algorithm)
- Content validation and sanitization (XSS protection)
- SQL injection prevention testing
- Frontend components for rating and reviewing
- Break Week: Catch-up, bug fixes, and refactoring
- CI: GitHub Actions auto-run unit + integration + E2E tests (Note: Pipeline configured but test execution needs to be added to workflow)
- Add E2E test and Unit Test suite for remaining Test Cases (Social features, Feed, Comprehensive E2E)
- Submit progress report + demo video
- Deploy initial progress to hosting platform
- Production environment setup
- Database deployment and migration
- Environment variables configuration
- SSL certificate setup
- Production testing and bug fixes
- Begin implementing Travel Buddy System (Travel_Buddy_Connections table)
- Connection request functionality
- Accept/decline buddy requests
- Privacy controls for social media sharing
- User blocking and reporting system
- Real-time notifications implementation (WebSocket with Socket.IO)
- Frontend components for buddy management
- Security testing for user connections with Unit Test and E2E test
- Trip Planning System (Trips, Trip_Cities, Trip_Companions tables)
- Collaborative trip creation and management
- Trip itinerary planning (Trip_Itinerary table)
- Travel companion finder functionality
- Trip sharing and privacy controls
- Integration with recommendation system
- Frontend trip planning interface
- Submit progress report + demo video
- Achievement System (Achievements, User_Achievements tables)
- Badge creation and tracking
- Travel history tracking (User_City_Visits table)
- User engagement metrics
- Achievement notification system
- Frontend achievement display components
- Milestone 4: Moderation System (Moderator_Actions, Content_Reports tables)
- Content reporting functionality
- Moderator dashboard for content review
- User warning system (User_Warnings table)
- Content removal and user management
- Moderation queue and workflow
- Admin analytics and reporting
- Security audit and penetration testing
- Final polish: responsive layout, accessibility checks (Lighthouse/Axe)
- Recommendation algorithm optimization
- Search history and saved searches (Search_History, Saved_Searches tables) - Backend API and Frontend UI implemented
- Search history dropdown with auto-complete suggestions (shows matching history items while typing)
- Full search history sidebar with date grouping (Today, Yesterday, This Week, Older)
- Click history items to re-run searches with saved filters
- Delete individual history items or clear all history
- Keyboard navigation support (arrow keys, Enter, Escape)
- Integrated into SearchInput, SearchBar, and AdvancedSearch components
- Custom useSearchHistory hook for state management
- User favorites system (User_Favourites table) - Implemented via recommendation_saves
- GitHub Actions: final test automation
- critical bug fixes
- Test E2E and Unit Test of all the features - Comprehensive test suites added
- Run final CI/CD, test coverage reports, accessibility scan
- Accessibility compliance testing (WAVE, axe DevTools)
- Production deployment finalization
- Final deployment and tag release version
- Write final report (include test, deployment, screenshots)
- Record and submit final demo video
- Showcase all major features + CI/CD, testing, accessibility
NOTE: I will add as I go.
- Frontend: React.js with TailwindCSS
- Backend: Node.js with Express.js framework
- Database: PostgreSQL
- Authentication: JWT with bcrypt password hashing
- Containerization: Docker
- File Upload: Multer with image optimization
- Testing: Jest for API testing, React Testing Library for frontend
- Deployment: DigitalOcean
- SQL Injection Protection: Parameterized queries
- XSS Prevention: Input sanitization and validation
- Session Security: 15-minute timeout with secure JWT tokens
- Password Security: bcrypt hashing with strength validation
- Data Protection: Secure storage for personal information
/- Landing page introduction/signup- New user registration/login- User authentication/reset-password- Reset Password/dashboard- Primary landing page after login
- Frontend: http://localhost:3000
- Backend API: http://localhost:5001
- PostgreSQL: localhost:8080
- Website: https://city-pulse.app
- API: https://api.city-pulse.app
- Health Check: https://api.city-pulse.app/health
CityPulse - Connecting Travelers, Sharing Experiences, Building Communities π
Run coverage reports locally:
- Backend:
cd backend && pnpm test:coverage - Frontend:
cd frontend && pnpm test:coverage - View HTML Reports:
cd backend && pnpm test:coverage:html(opens in browser)
Coverage reports are generated in:
- Backend:
backend/coverage/ - Frontend:
frontend/coverage/