Open repository for the website https://adventurelookup.com/
If you just want to run the website on your machine.
If you want to develop you'll probably want one or more of the following:
(For Linux/OSX, if someone knows the Windows equivalents I'm happy to add them)
- Clone the repository & cd into it
git clone https://github.com/petertrotman/adventurelookup
cd adventurelookup
- Build the docker files (may take some time but there's lots of whizzing text!)
docker-compose build
- Carry out the database migrations
docker-compose run --rm -u root api python manage.py makemigrations
docker-compose run --rm -u root api python manage.py migrate
(we need to run as root in the container with -u root
because the default user doesn't have write access to the code files)
(if you get an error saying the database is not accepting connections, wait a few seconds and try again - it may not have booted yet)
- Create the admin superuser (you will be prompted for a username and password)
docker-compose run --rm api python manage.py createsuperuser
(--rm
ensures the container is removed after its done what it needs to do)
- Run the server!
docker-compose up
- (Optional) Run the production server!
docker-compose -f docker-compose.prod.yml up
-
Navigate to the homepage in your favorite browser at
http://localhost
-
Add some signup e-mails on the homepage
-
Watch Matt's about video on the /about page
-
Navigate to
/api/admin
, and enter your superuser credentials to check out your added sign-up emails. -
Stop the server
(in the server terminal) ctrl+c
--or--
docker-compose stop
- (Only if you want to get rid of it all) Remove the Docker images
docker-compose rm -v
In no particular order:
- Docker: An excellent way to package complex web apps together in a nice development environment so that anyone can run the same code.
- Django: Very mature and well-respected web framework in Python.
- DjangoRestFramework: A Django framework for creating fully-fledged APIs quickly.
- Nginx: A high performance web server.
- Postgres: Enterprise-grade database which tonnes of awesome features.
- React: Facebook's ultra trendy component rendering library (which is actually very cool).
Along with:
- React-Router: The official routing solution for react.
- Redux: An atomic state management library.
Please feel free to get started! I will be posting some open issues up over the next few days, but it should be obvious what can be done right away. If you want to dive right in, the next big projects to tackle are:
- The Adventures model definitions and API
- Better styling (I'm no designer...)
- The Adventures front end search and input
- TESTS! We're using Jest for tests for the frontend and the Django test framework for the backend.
- Documentation - it's minimal right now, the first things that need to be filled in are the READMEs in the client and server folders to help people to get started quicker.
- Data - we will need a decent set of data for development, so a table of adventures would be really useful.
I'll be active on the Discord channel so please come by and ask any questions there.
Hope to see a few of you join me on this endeavour :-)
-- Peter