Temporary repository for Critter app development.
- Docker > v19.03
- Make sure Docker engine is running.
- [For Linux] Make sure you can run sudo commands or your user is in docker group, and you have docker-compose installed.
- Open a terminal and navigate to project directory where "docker-compose.yml" file resides.
- IMPORTANT make sure u rename the file ".env_example" to ".env" and write desired environment variables.
- Run
docker-compose up --build
; wait for docker to download and build images. - You can access API endpoint at "localhost/api/", and frontend at "localhost".
- Portainer is accessible at "localhost:9000". Make sure you create an admin account before 5 minutes or container stops.
- Redis-commander is accessible at "localhost:8085" for monitoring redis caches.
- API endpoints documentation .
- Implement testing modules/libraries and coverage reports for TDD.
- Configure TravisCI for frontend tests/build report on each push.
- Add basic landing page using bootstrap/? based on given design templates, including header, main body, footer.
- Implement authentication system using VueX.
- Handle user profile management functions (logout, edit info, etc.).
- Add user profile template based on user profile management functions.
- Add a map API for nearby businesses/services viewing.
- Load data from biz API to map.
- Filter businesses/services by location according to API search queries.
- Add a consistant test method or library (such as pytest, paramteraized.). commit
- Cover tests for existing functions (+90% coverage). commit
- Implement flake8, and configure it for needed files; fix linting errors. commit
- Add Celery for asynchronous tasks such as sending emails for confirmation/password reset. commit
- Add automated password reset via email through Celery. commit
- Implement email confirmation at signup. commit
- Configure django's setting to cache biz queries via Redis. commit
- Move all django apps to an "apps" folder for a cleaner environment. commit
- Move all scripts to a "scripts" folder, and make sure docker works properly with new paths. commit
- Fix the error with pgadmin (not working after adding nginx). commit
- Add Celery for asynchronous backend tasks. commit
- Add Redis for caching. commit
- [FAILED] Replace nginx with Traefik if it offers better solution for https and certs.
- Web has a frontend that shows User info/Biz info.
- Users can post and edit Biz, and update their info, according to permissions.
- Users can request "forgot password" and do it via email confirmation.
- User location is determined via IP/permission for gps info. Or they select location.
- Nearby Bizs will be shown on a map.
- Users can comment on each biz and these comments show up on Biz pages.
- Basic app layout with logo, map functionality, sign-up, login.
- Users able to edit their personal info.
- Users can post, edit Biz info based on their permissions.
- App receive live GPS location and update user location info.
- Show nearby Biz based on location.
- Direct contact(phone call, etc.) from Biz page if Biz phone number was provided.
- Users able to write comments, reviews, etc.
- Add user avatar. One image for user profile.
- Differentiate reviews and comments in separate models/serializers.
- Add likes/upvotes/reactions to comments and/or reviews.
- Expand the Gallery of Biz to support multiple images possibly in a separate model.
- Implement users uploading pictures of Biz.
- Add editor/owner field to Biz so only owner user(s) can edit info.
- Add blog/news to Biz (only owners can publish).
- Add poll/surverys to Biz (only owners can publish).
- Implement IP blacklists and concurrent request to prevent brute-forcing.
- Email confirmation/password reset done through LINKS instead of 6-digit codes.
- Add Biz info from available APIs (Google places, etc.) through web crawling.
- Add categories/tag feature for Biz to be separated by them.
- Implement Graphql if needed for specific needs.
- Use Graphql for needed functionality, if any.
- Run different performance tests and improve if results aren't satisfying.
- Implement newly added Backend functions, such as like/reaction, differentiated comment/reviews, etc.
- Add https certification(automated cert refresh), through either Nginx or Traefik.
- Add MongoDB if it's needed for image upload, and gallery management.
- Network mapping according to services and their communication needs.
- Implement Docker Swarm for seamless and automated updates.
- Implement Gitlab CI/CD if the service is better than current Travis CI.
- Deploy the app on an appropriate host for live beta testing.
- Run stress performance tests and debug the issues.