current work complete
This commit is contained in:
167
Future-Features/Future-Feature.md
Normal file
167
Future-Features/Future-Feature.md
Normal file
@@ -0,0 +1,167 @@
|
||||
# Team Collaboration challenge - 1
|
||||
|
||||
This will be a group activity challenge. You will be assigned all those who are interested and build a mini product in under 6 hours. The challenge will be actual problems that tech clubs face and you fix them to improve yours and your fellow members' experience.
|
||||
|
||||
This project will be either GPL or AGPL license which means it’s an open source project that means the source code and application can be distributed for free.
|
||||
|
||||
## Create a whatsapp bot that creates a static webpage for you :
|
||||
Your task is to ensure that a user can create a website from whatsapp. We will make all websites static to ensure that we can add future features such as deploying the websites to a server or IPFS. We will use a static website generator called hugo.
|
||||
|
||||
Each team interested must have a minimum of 5 developers
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
### Bot Developer :
|
||||
Your task is to design a bot that reads input and sends the according information to the API and displays the responded result.
|
||||
Repo :
|
||||
https://github.com/Tech-club/whatsapp-web.js/
|
||||
|
||||
Language :
|
||||
Node js
|
||||
|
||||
### Commands :
|
||||
|
||||
#### Show Templates
|
||||
- Returns link of all templates
|
||||
|
||||
#### Create website <template-name>
|
||||
- returns the all commands available for that template
|
||||
- returns unique id
|
||||
|
||||
#### deploy id
|
||||
- returns link
|
||||
|
||||
#### remove id
|
||||
- return message website removed
|
||||
|
||||
### Backend dev :
|
||||
Your task is to design the basic backend that reads and writes data to files , to the database and call the deployment api
|
||||
|
||||
#### File Structure:
|
||||
|
||||
````
|
||||
- Templates
|
||||
- Theme1
|
||||
- Theme2
|
||||
- ids
|
||||
- id1
|
||||
- Theme1
|
||||
- id2
|
||||
- Theme2
|
||||
````
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
### Deployment dev :
|
||||
When the backend dev calls deploy must run the following bash script.
|
||||
|
||||
#### if it's a new repo
|
||||
```bash
|
||||
#!/bin/sh
|
||||
reponame="$1"
|
||||
GITHUBUSER=$(git config github.user)
|
||||
|
||||
|
||||
|
||||
if [ "$reponame" = "" ]; then
|
||||
read -p "Enter Github Repository Name: " reponame
|
||||
fi
|
||||
mkdir ./$reponame
|
||||
cd $reponame
|
||||
curl -u $2:$3 https://api.github.com/user/repos -d "{\"name\":\"$reponame\"}"
|
||||
|
||||
|
||||
git init
|
||||
echo "ADD README CONTENT" > README.md
|
||||
git add README.md
|
||||
git commit -m "Starting Out"
|
||||
git remote add origin git@github.com:$2/$reponame.git
|
||||
git push -u origin master
|
||||
```
|
||||
#### Exisisting Repo
|
||||
```bash
|
||||
#!/bin/sh
|
||||
git add README.md
|
||||
git commit -m "Starting Out"
|
||||
git push -u origin master
|
||||
```
|
||||
|
||||
#### Code to deploy and get the site running
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
if [ "`git status -s`" ]
|
||||
then
|
||||
echo "The working directory is dirty. Please commit any pending changes."
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
echo "Deleting old publication"
|
||||
rm -rf public
|
||||
mkdir public
|
||||
git worktree prune
|
||||
rm -rf .git/worktrees/public/
|
||||
|
||||
echo "Checking out gh-pages branch into public"
|
||||
git worktree add -B gh-pages public upstream/gh-pages
|
||||
|
||||
echo "Removing existing files"
|
||||
rm -rf public/*
|
||||
|
||||
echo "Generating site"
|
||||
hugo
|
||||
|
||||
echo "Updating gh-pages branch"
|
||||
cd public && git add --all && git commit -m "Publishing to gh-pages (publish.sh)"
|
||||
|
||||
#echo "Pushing to github"
|
||||
#git push --all
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
### Database Designer and Integrator:
|
||||
|
||||
Your task is to design the database structure and also provide the queries for them.
|
||||
You can even collaborate with the backend dev and use models.
|
||||
|
||||
#### Your database must accommodate for:
|
||||
````
|
||||
- Template name
|
||||
- Locations where to add content (Might require 1 to many for RDBMS)
|
||||
- Demo link
|
||||
|
||||
- Id
|
||||
- Theme information (Derived from Template name and locations to add content)
|
||||
````
|
||||
|
||||
#### Queries it must accommodate for
|
||||
1. Adding a new theme
|
||||
2. Deleting a new theme
|
||||
3. Showing theme name and theme link
|
||||
4. Deleting id
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
### Hugo module creator:
|
||||
Required to use existing hugo themes and configure it in such a way that it runs on github pages
|
||||
|
||||
#### Help the:
|
||||
- Database designer and backend dev in giving information about each hugo theme used and ensure that all hugo themes are deployed using the same command.
|
||||
|
||||
|
||||
## Minimum Requirements:
|
||||
1. Used Git before
|
||||
2. Integrated Rest Api’s before
|
||||
3. Basic Experience with bash (Or willing to learn on the spot)
|
||||
4. Build databases before
|
||||
Reference in New Issue
Block a user