GithubHelp home page GithubHelp logo

giancarlopernudisegura / cmput404 Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 3.0 3.36 MB

License: GNU General Public License v3.0

Shell 0.42% JavaScript 1.66% HTML 0.07% Python 41.54% TypeScript 55.64% Dockerfile 0.23% CSS 0.18% Mako 0.21% Procfile 0.05%

cmput404's Introduction

Tik Tak Toe

A distributed social network

CI min node version: 16 min python version: 3.8

Setting up development environment

Installing dependencies

First, install the node dependencies

npm i

Second, install the python dependencies

cd server/
python3 -m venv venv
source venv/bin/activate
python3 -m pip install -r requirements.txt

Lastly, create a .env file. You can make a copy of the example file in the root directory.

cp .env.example .env

Initialize local database

First create an empty database in /server named app.db with:

touch server/app.db

Use the same DATABASE_URL environment variable found in .env.example

Starting the server

Recommended that you run the following commands on two different terminals so you can see that output for each command.

npm run dev
cd server/
source venv/bin/activate
flask run

Testing the server

cd server/
DATABASE_URL=sqlite:///test.db flask db upgrade
DATABASE_URL=sqlite:///test.db pytest tests.py

References

Firebase Authentication

Material UI Drawer Implementation

Tailwind NavBar Implementation

cmput404's People

Contributors

dalidia avatar dellahumanita avatar giancarlopernudisegura avatar jasonexus avatar pegmode avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

cmput404's Issues

Setup Heroku

Create whatever we need for Heroku including the PostgreSQL server. If you can invite other people to the Heroku, make sure to add the backend team.

Create a Firebase Project

Create a Firebase project and add everyone to it. For now, we're gonna use it for authentication. Mainly intended for #27.

[User Story]: Private Comments

User Story

As an author, comments on friend posts are private only to me and the original author.

Objects

Authors, Post, Comments

[User Story]: Re-sharing Posts

User Story

As an author, I can re-share other authors’ friend posts with my friends.

Objects

Authors, Followers, Post

[User Story]: Remove Nodes

User Story

As a server admin, I want to be able to remove nodes and stop sharing with them.

Objects

Inbox

[User Story]: Secure Private Images

User Story

As an author, I want to feel safe about sharing images and posts with my friends – images shared to friends should only be visible to friends. [public images are public]

Objects

Authors, Image Posts

[User Story]: Add Nodes

User Story

As a server admin, I want to be able to add nodes to share with.

Objects

Inbox

Nuke Migration

The migration is really broken. We likely need to nuke the migration and restart. Check that it hasn't reversed upgrade/downgrade in the new version.

[User Story]: Follower vs Friends

User Story

As an author, when I befriend someone, I follow them. Only when the other author befriends me do I count as a real friend – a bi-directional follow is a true friend.

Objects

Followers, Friend/Follow Request

[User Story]: Unlisted Posts

User Story

As an author, I want to be able to make posts that are unlisted, that are publicly shareable by URI alone (or for embedding images).

Objects

Post, Image Posts

[User Story]: Manage Posts

User Story

As an author, I want to be able to use my web browser to manage/author my posts.

Objects

Single Author, Post

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.